Выше по иерархии
Другие алгоритмы.

Математика:
Вычислительная геометрия:
Пересекаются ?... А если да, то где ?

Две окружности.

© Кантор И.

Будем рассматривать нашу задачу из системы координат с началом в центре первой окружности.

Определить центр окружности по каноническому уравнению вида Ax2 + Ay2 + a1x + a2y + a0 = 0, где A =/= 0, довольно просто - это (-a1/2A, -a2/2A);

перенести систему координат можно простым преобразованием

Xстарое=Xновое - a1/2A
Yстарое=Yновое - a2/2A

- подставить вместо старых переменных их новые значения в уравнения.

В такой системе координат уравнения окружностей можно записать как

(1) x2 + y2 = R2 (2)(x-a)2 + (y-b)2 = r2

Раскрывая скобки, вычитая (1) из (2) и приводя подобные, получаем другой вид (2):

-2ax-2by = R2 - r2 - a2 - b2.

Если еще упростить и немного поменять обозначения, то (2) приведется к виду

ax+by=C, где С - новое обозначение выражения справа.

Таким образом, имеем систему:

(1) x2 + y2 = R2 (2) ax + by = C,

решение которой, надеюсь, не составит проблем (например, подойдет подстановка - естественно с учетом случаев a=0, b=0 и т.п.) (2) в (1) и имеем простое квадратное уравнение на одну из переменных.

Решив его и получив из (2) значение оставшейся переменной, имеем(если и только если она есть) точку пересечения.




Вверх по странице, к оглавлению и навигации.