Re: точка пеpесечения тpех окpyжностей

From
Soldatenkov Mitea (2:5015/126.41)
To
Vlad Lesin ()
Date
2003-02-27T22:16:54Z
Area
RU.ALGORITHMS
Привет, Vlad Lesin!
Ты вроде писал(а) в эху RU.ALGORITHMS следуюшее:
 VL>  Дано: кооpдинаты центpов окpyжностей и их pадиyсы.  Тpебyется: _быстpо_
 VL> найти кооpдинаты точки пеpесечения этих окpyжностей.
Прикинул тут на бумажке и вот что вышло: возмем две окружности, и измерим растояние
между их центрами. Если оно больше суммы их радиусов, эту пару не проверяем.
Иначе, расстояние обозначим за a. Радиусы за r для первой окружности и r1 для второй.
Теперь, расчитываем два коофицента: xk и yk. xk=(r^2-r1^2+a^2)/(2*a). yk=+/-sqrt(r^2-xk^2). Координаты
центров окружностей: x;y для первой, x1;y1 для второй. Координаты пересечения окружностей:
xp=x+(x1-x)/a*xk-(y1-y)/a*yk, yp=y+(y1-y)/a*xk+(x1-x)/a*yk. Далее, перебираешь по этому
алгоритму все три пары окружностей и получаешь точки их пересечения.
P.S. Хотя, естественно я неутверждаю что эта формула обязательно без ошибок: вполне мог где-нить ошибится.

--- 
 * Origin: ...они лежат и бредят: когда-же он уедет? (2:5015/126.41)