Построить географическую карту из треугольных точек на основе расстояния

У меня есть 5 {x, y} точек, случайно размещенных на сетке

Каждая из точек не знает координаты {x,y} других точек

Каждая из точек знает расстояние каждой из других точек от их положения {x,y}

Каждая из точек обменивается этой информацией о расстоянии с любой другой точкой.

Таким образом, каждая точка знает каждое расстояние до любой другой точки.

Используя эту информацию о расстоянии, каждая точка может вычислить (путем нахождения углов) треугольники для любой другой точки, используя себя в качестве точки отсчета.

Например, по точке 1 можно рассчитать следующие треугольники: 1-2-3, 1-2-4, 1-2-5, 1-3-4, 1-3-5, 1-4-5, а с помощью расстояния данные, полученные из других точек, он также может рассчитывать 2-3-4, 2-3-5, 2-4-5, 3-4-5

Я хотел бы построить карту расположения каждой другой точки относительно одной точки

Как мне это сделать? Я предполагаю, что это будет какой-то алгоритм триангуляции, но в основном они вычисляют местоположение точки по трем другим точкам, а не наоборот, когда координаты других точек {x, y} обнаруживаются на основе только информации о расстоянии. .

Я попытался построить два возможных треугольника для каждых трех точек треугольника, а затем повернуть их на фиксированной известной точке, чтобы попытаться выровнять их, но я думаю, что этот путь приведет к слишком большому количеству возможностей и ошибок.

В конечном итоге я хотел бы, чтобы каждая точка заканчивалась координатами {x, y} каждой другой точки относительно себя


person billysdomain    schedule 26.05.2018    source источник


Ответы (1)


person    schedule
comment
Это здорово, большое спасибо. Если бы одна или несколько точек перемещались, а точка P1 оставалась неизменной, смог бы я определить, какая из двух возможностей верна? - person billysdomain; 30.05.2018
comment
@billysdomain Симметрия есть всегда, пока вы не используете координаты еще двух точек. Это означает, что пока у вас не будет треугольника, координаты которого известны заранее, и вы используете этот треугольник для решения как симметрии, так и вращения. - person Ripi2; 30.05.2018
comment
Таким образом, единственный возможный способ решить проблему симметрии — ввести известную точку, любое движение любой из точек в любой последовательности не может помочь? - person billysdomain; 30.05.2018
comment
Любое движение — это просто новые расстояния, а значит, и новая триангуляция. Вы снова на линии старта. Без известных точек симметрия остается в силе. - person Ripi2; 30.05.2018