2016-12-14 11 views
0

Я пытаюсь выяснить позицию (x, y) узла s2 из данного примера.Как найти последнюю координату точки треугольника на основе наличия двух точек и всех расстояний в javascript?

[example nodes]1

С трилатерацией я был в состоянии вычислить первую позицию узла s1 на основе фиксированных якорей. Теперь я пытаюсь вычислить s2 узел возможные координаты, то, что у меня есть:

Координаты двух точек:

A2: {у: 0, х: 4}

S1: {у: 2, х: 2}

Расстояния:

А2-S2: 2

S1-S2: 2

A2-S1: 2

Есть ли способ рассчитать возможные позиции узла s2 на основе этих данных в JavaScript? Это должно работать на любом типе треугольника.

Update:

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

A JavaScript function that returns the x,y points of intersection between two circles?

+0

Это невозможно знать, 2 очка и все расстояния. Как вы узнаете, на какой стороне линии находится 3-й пункт? –

+0

Да, вы правы, это может быть с двух сторон, но я знаю диапазоны датчиков, а также тот датчик может разговаривать с другим. Так что если s2 будет с другой стороны, я бы знал, что он может поговорить и с А1. Если я могу получить 2 возможных координаты s2, я мог бы решить, какой из них действителен в соответствии с некоторыми правилами. – Laci

+1

Это также проблема трилатерации. У вас, похоже, уже есть решение для этого. –

ответ

0

У вас есть две известных точек А и В, неизвестной точке C и расстоянии DAC и DBC (Dab бесполезно). Таким образом, вы можете построить систему уравнений

(C.X - A.X)^2 + (C.Y - A.Y)^2 = dAC^2 
(C.X - B.X)^2 + (C.Y - B.Y)^2 = dAB^2 

и решить для C.X и C.Y (там возможны два, один и ноль решений).

Обратите внимание, что стоит перенести координаты по формуле (-ах, -BX), чтобы получить более простые уравнения и решения, а затем добавить (AX, BX) к решению координат

 Смежные вопросы

  • Нет связанных вопросов^_^