|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Soldatenkov Mitea 2:5015/126.41 27 Feb 2003 23:16:55 To : Vlad Lesin Subject : Re: точка пеpесечения тpех окpyжностей --------------------------------------------------------------------------------
Ты вроде писал(а) в эху 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)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/39003c98d803.html, оценка из 5, голосов 10
|