Как вычислить площадь фигуры образованной пересечением 2 окружностей?
Даны радиусы и координаты центров окружностей, которые пересекаются. Нужно найти фигуры образованную этим пересечением.
Задачу, когда центр окружности не лежит в другой решить легко, да и в другом случае не трудно. Проблема состоит в том, что эти способы разнятся в алгоритмах, то есть они универсальны только внутри локального условия, а не общего. Мне нужен именно универсальный способ, который будет давать верный результат и когда центр окружности не лежит в другой окружности, и когда он лежит в другой окружности. Метод Монте-Карло тут совсем не вяжется.
1. Повернём систему координат так, что бы прямая, соединяющая центры окружностей, стала параллельна оси Ox, а также сместим всё так, что бы цент одной из окружностей совпал с центром координат. a = √((x₂-x₁)^2 + (y₂-y₁)^2). Итак имеем 2 окружности с координатами (0;0) и (a; 0)
2. Отбросим ту часть рисунка, что лежит под осью Ох, ведь рисунок относительно неё симметричен и нам достаточно посчитать площадь над осью и умножить над 2.
3. напишем уравнения функций этих окружностей:
f₁ = √(r₁^2 - x^2)
f₂ = √(r₂^2 - (x-a)^2)
4. Найдём точку пересечения окружностей:
√(r₁^2 - x^2) = √(r₂^2 - (x-a)^2)
r₁^2 - x^2 = r₂^2 - (x-a)^2
r₁^2 - x^2 = r₂^2 - x^2 + 2ax - a^2
r₁^2 = r₂^2 + 2ax - a^2
x = (r₁^2 + a^2 - r₂^2)/2a
5. Ну а теперь ищем сумму интегралов функций f₁ и f₂ с границами ((r₁^2 + a^2 - r₂^2)/2a; r₁) и (a-r₂; (r₁^2 + a^2 - r₂^2)/2a) соответственно. Переписывать сюда не стал, потому как лень, а там писанины много. Можно, конечно, обойтись без интегралов, а просто зная точку пересечения окружностей найти площади соответствующих секторов и отнять от них площади соответствующих треугольников, что бы найти площади нужных сегментов.
6. Умножить результат на 2
Если система координат уже преобразована так, что уравнения окружностей
{x²+y²=R²
{(x-a)²+y²=r²,
то площадь их общей части есть функция от а
S(a)=R²arccos((a²+R²-r²)/(2aR))+r²arccos((a²+r²-R²)/(2ar))-(1/2)√((R+r-a)(R-r+a)(-R+r+a)(R+r+a))
Остается доопределить/проверить при условиях |а|≥R+r и 0≤|а|≤min(R,r)
Интегрируй
"...Нужно найти фигуры, образованные этим пересечением..."
Вообще говоря, при пересечении двух окружностей получается три фигуры: одна - "долька арбуза", две - "полумесяцы"...
Ты хотя бы что-нибудь нарисовал. И пояснил, что тебе непонятно.