Если у меня есть три точки A, B, C, и я знаю расстояния между ними, и A находится в 2D-координатах {0,0}, а B находится в {ab,0}, то по какой формуле можно найти координаты точки? точка С?
Вычислить координаты точки с заданными расстояниями до двух других точек
Ответы (3)
Точка {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
также может быть только одно решение или вообще не быть.
person
Howard
schedule
20.03.2011
Если вы не накладываете никаких дополнительных ограничений на расстояния, ваш вопрос эквивалентен «как найти пересечение двух кругов»:
http://mathworld.wolfram.com/Circle-CircleIntersection.html
Следовательно, как указал Говард, будет 0, 1 или 2 точки пересечения, удовлетворяющие заданным вами условиям.
person
Fivos Vilanakis
schedule
20.03.2011
Вы можете использовать формулу расстояния (в основном теорему Пифагора), чтобы найти расстояние между любыми двумя точками на координатной плоскости.
http://www.purplemath.com/modules/distform.htm
person
SamB
schedule
20.03.2011