Рассчитать координаты точки с заданными расстояниями до двух других точек - PullRequest
1 голос
/ 20 марта 2011

Если у меня есть три точки A, B, C и я знаю, что расстояния между ними и A находятся в двухмерных координатах {0,0}, а B - в {ab, 0}, то какова формула для нахождениякоординаты точки C?

Ответы [ 3 ]

5 голосов
/ 20 марта 2011

Точка {cx, cy} должна решить два уравнения:

cx^2+cy^2==ac^2 && (cx-ab)^2+cy^2==bc^2

=> cx^2-(cx-ab)^2==ac^2-bc^2
=> 2*cx*ab==ac^2-bc^2+ab^2

=> cx = (ac^2-bc^2+ab^2)/(2*ab)

=> cy = +/- sqrt(ac^2-cx^2)   iff ac^2-cx^2 > 0
=> cy = 0   iff ac^2-cx^2 = 0
=> no solution    else

Есть две точки, каждая из которых имеет желаемое расстояние. Но на основе ac^2-cx^2 также может быть только одно решение или его вообще нет.

2 голосов
/ 20 марта 2011

Если вы не налагаете никаких дополнительных ограничений на расстояния, ваш вопрос эквивалентен «как найти пересечение 2 окружностей»:

http://mathworld.wolfram.com/Circle-CircleIntersection.html

Следовательно, какГовард указал, что будут точки пересечения 0, 1 или 2, соответствующие условиям, которые вы поставили.

1 голос
/ 20 марта 2011

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

enter image description here

http://www.purplemath.com/modules/distform.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...