Вы должны понимать, что здесь будет несколько точек, удовлетворяющих математическому ограничению. Подумайте ясно: если у вас есть две точки на сфере (пока игнорируйте геодезическую форму), P1 и P2, и у вас есть еще одна точка T1, на расстоянии x от P1 и на расстоянии y от P2, тогда у вас будет еще одна симметричная (зеркальная ) точка T1 ', которая будет удовлетворять тем же условиям расстояния, так сказать, с другой стороны.
Еще хуже: рассмотрим случай шара диаметром D. Ваш P1 находится на Северном полюсе, а ваш P2 - на Южном полюсе. Вы видите, что все точки на экваторе удовлетворяют вашему условию?
Примените это к своему примеру: рассмотрим точку P1 на Северном полюсе. Рассмотрим P2 на Южном полюсе. Рассмотрим расстояние до Px, т.е. D1 = D2 = (2.pie.r) / 4. Видите проблему? Этому удовлетворяют все точки на экваторе, а не одна единственная точка. Фактически, в этом случае, даже если D1! = D2, у вас есть концентрические линии меньшего размера (концентрические к экватору), точки которых удовлетворяют этим ограничениям.
В вашем случае слишком много Px, а не один. Чтобы прийти к особой точке на сферической поверхности, ограничения описания были бы более конкретными.
Наконец, важно установить правильность контекста. Должен ли ваш алгоритм поддерживать все точки, соответствующие критериям? Или ваши критерии должны быть изменены таким образом, чтобы алгоритм всегда оценивал до особой точки. Будь осторожен.
Некоторые ссылки, которые могут вам помочь:
Википедия: http://en.wikipedia.org/wiki/Spherical_coordinates
SO : Нанесение точки на краю сферы
Обновления на основе вашего трехточечного примера:
Опять же, вашим критериям может быть несколько точек. Что, если P1, P2, P3 лежат на одной дуге? См. Схему ниже. Даже с тремя точками нет гарантии, что будет одна четвертая точка, удовлетворяющая критериям расстояния. Даже с n баллами такой гарантии нет.
На математическом языке для набора из n случайных точек и набора расстояний от этих отдельных точек набор результирующих точек, удовлетворяющих критерию расстояния МОЖЕТ содержать более одного элемента.
![введите описание изображения здесь](https://i.stack.imgur.com/UsLNM.png)
Вас могут обмануть, если вы подумаете: «О, этот парень всегда предполагает, что точки лежат на одной дуге». Вы ведь не делаете особого алгоритма? Ваш алгоритм будет обобщенным решением, не так ли?
Вы должны гарантировать, что точки не находятся на одной дуге (в наборе из n точек, я думаю, по крайней мере, 1 точка не может быть на одной дуге).
Чтобы свести исходные точки к минимуму: вам необходимо установить специальные отношения между точками, потому что тогда, используя ТОЛЬКО две точки, отношение треугольника даст ровно одну точку.
Какой треугольник? Визуализируйте это: у вас есть две точки и третья неизвестная точка. Все упомянутые вами расстояния являются СФЕРИЧЕСКИМИ, то есть расстояниями по криволинейной поверхности. Вы видите, что между этими точками тоже есть ровные расстояния? Можете ли вы представить себе, что через эти точки будет проходить плоскость, разрезающая сферу, верно? Я говорю это, чтобы подчеркнуть, что вам не нужно беспокоиться о кривизне поверхности (отсюда и трехмерные стерадианные углы). Вы можете увидеть нижележащий двумерный треугольник, неизвестная вершина которого также будет третьей точкой на поверхности сферы.
Я знаю, что, возможно, вам будет очень трудно это представить, я попробую нарисовать для этого диаграмму. (Не могу найти хороших онлайн-инструментов!).
И, наконец, это будет значительным подспорьем: пожалуйста, прочтите внимательно.
Взято из Википедии: http://en.wikipedia.org/wiki/Great-circle_distance
Большой круг или ортодромическое расстояние - это кратчайшее расстояние между любыми двумя точками на поверхности сферы, измеренное вдоль пути на поверхности сферы (в отличие от через внутреннюю часть сферы). Поскольку сферическая геометрия отличается от обычной евклидовой геометрии, уравнения расстояния принимают другую форму. Расстояние между двумя точками в евклидовом пространстве - это длина прямой линии от одной точки до другой. На сфере же нет прямых линий. В неевклидовой геометрии прямые линии заменяются геодезическими. Геодезические на сфере - это большие круги (круги на сфере, центры которых совпадают с центром сферы).
Еще несколько обновлений:
Преобразование длинных лат в декартовы координаты можно выполнить с помощью формулы Хаверсина. Погугли это. См. Здесь: Преобразование долготы \ широты в декартовы координаты и здесь: http://en.wikipedia.org/wiki/World_Geodetic_System
person
Community
schedule
16.07.2012