Найти пересечение трех окружностей

Расчет площади пересечения окружностей методом Монте-Карло

Найти пересечение трех окружностейЭта статья родилась как логическое продолжение пятничного поста о методе Бутстрапа, а особенно, комментариев к нему. Не защищая метод Бутстрапа, стоит уделить внимание методам Монте-Карло. Здесь я хочу поделиться своим опытом применения Монте-Карло в одной из своих практических задач, а также обоснованием законности этого применения.

Итак, моя задача заключалась в необходимости вычисления площади фигуры, являющейся пересечением окружностей, с последующей реализацией на языке JavaScript. Площадь под графиком – это интеграл. Интегрирование методом Монте-Карло достаточно широко известно, но, как многие верно заметят, его применение требует некоторого обоснования. За подробностями прошу под кат.

Обоснование

Задача расчета площади пересечения двух окружностей является тривиальной геометрической задачей (координаты центров окружностей и их радиусы нам известны). Площадь пересечения двух окружностей – это сумма площадей соответствующих сегментов этих окружностей. Есть решения для расчета площади пересечения двух, трех, четырех окружностей в различных частных случаях.

А вот решения общего случая для пересечения даже трех окружностей уже далеко не так тривиальны. В процессе поиска я нашел даже исследования по расчету площади пересечения N окружностей, однако они настолько же интересны, насколько и сложны.

Здесь на сцену выходит метод Монте-Карло. Благодаря современным компьютерным мощностям этот метод позволяет провести большое количество статистических испытаний, на основе результатов которых делается обобщение.

Итак, алгоритм расчета площади любой фигуры методом Монте-Карло сводится к следующему:

  1. Фигура вписывается в прямоугольник. Координаты сторон прямоугольника известны, значит, известна его площадь.
  2. Псевдослучайным образом внутри прямоугольника генерируется большое количество точек. Для каждой точки определяется, попала ли точка внутрь исходной фигуры или нет.
  3. В результате площадь исходной фигуры вычисляется исходя из обычной пропорции: отношение количества точек, попавших в фигуру, к общему количеству сгенерированных точек равно отношению площади фигуры к площади ограничивающего ее прямоугольника.

Последняя проблема, которую надо решить, заключается в том, что каким-то образом необходимо определять, попала ли точка внутрь исходной фигуры. В моем случае данная задача решается достаточно просто, поскольку моя фигура состоит из окружностей, координаты центров и радиусы которых известны.

Реализация задачи на JavaScript

Найти пересечение трех окружностей

Пара гвоздей в метод Бутстрапа

Если говорить именно о методе Бутстрапа, то мое личное мнение заключается в том, что случайная генерация набора данных по имеющемуся набору в общем случае не может служить для оценки закономерностей, поскольку сгенерированная информация не является достоверной. В общем, это же, только более умными (и нередко более резкими) словами, говорят и многие авторы, например, Орлов в своем учебнике по Эконометрике.

Видео:Деление окружности на 3; 6; 12 равных частейСкачать

Деление окружности на 3; 6; 12 равных частей

Как определить пересечение трех кругов?

Учитывая три круга с их центральной точкой и радиусом, как вы можете определить область пересечения?

До сих пор у меня есть:

Кроме того, если два сталкиваются, но не третье, функция должна возвращать значение null.
Если никто не сталкивается, null должен быть возвращен.

В этой статье описывается, как найти область пересечения между двумя кругами. В результате он легко распространяется на три круга.

————- ————- EDIT
Хорошо, проблема нелегко распространиться на три круга, я нашел кандидатские диссертации по этому вопросу. Предполагая, что три круга пересекаются, как показано ниже, можно найти приблизительное решение (я думаю). Прежде чем мы попытаемся это сделать, мы должны проверить, действительно ли три окружности пересекаются, как показано ниже. Проблема изменяется совсем немного, если говорят, что один круг находится внутри другого, а третий пересекает их обоих.

Найти пересечение трех окружностей.

Пусть S1, S2 и S3 обозначают области трех окружностей, а X1, X2 и X3 обозначают площадь пересечений между каждой парой окружностей (индекс увеличивается по часовой стрелке). Как мы уже установили, для них существуют точные формулы. Рассмотрим следующую систему линейных уравнений:

A + D + F + G = A + D + X1 = S1

B + D + E + G = B + D + X3 = S2

B + E + D + G = B + E + X2 = S3

Это недоопределено, но приближенное решение можно найти, используя наименьшие квадраты. Я не пробовал это численно, но вернусь к вам, как только я это сделаю: D
Если решение с наименьшими квадратами кажется неправильным, мы должны также наложить несколько ограничений, например. площадь, если пересечение любой пары кругов меньше площади окружностей.
Комментарии приветствуются.

PS +1 к Саймону для указания, что я не должен квалифицировать вещи так же легко

Видео:Взаимное расположение окружностей. Точки пересечения окружностейСкачать

Взаимное расположение окружностей. Точки пересечения окружностей

Пересечение двух окружностей

Этот онлайн калькулятор находит точки пересечения двух окружностей, если они существуют

Чтобы использовать калькулятор, введите координаты x и y центра и радиус каждой окружности.

Формулы для расчета приведены под калькулятором.

Найти пересечение трех окружностей

Точки пересечения двух окружностей

Первая окружность

Вторая окружность

Видео:Алгоритмы. Пересечение окружностейСкачать

Алгоритмы. Пересечение окружностей

Пересечение окружностей

Сама по себе задача нахождения точек пересечения двух окружностей достаточно проста, однако предварительно надо проанализировать если ли вообще точки пересения у данных двух окружностей. Поэтому начать надо с вычисления расстояния d в декартовых координатах между центрами окружностей и сравнения его с радиусами окружностей r1 и r2.

При этом возможно следующие случаи (расстояние между центрами показано красным отрезком):

Найти пересечение трех окружностей

Найти пересечение трех окружностей

Найти пересечение трех окружностей

Найти пересечение трех окружностей

Найти пересечение трех окружностей

Найти пересечение трех окружностей

СлучайОписаниеУсловие
Тривиальный случай — окружности совпадают (это одна и та же окружность)
Окружности не касаются друг другаr1 + r2″ />
Одна окружность содержится внутри другой и не касается ее
Окружности пересекаются в двух точкахНе выполнено ни одно из условий выше
Окружности соприкасаются в одной точкеЧастный случай предыдущего

Если окружности действительно пересекаются, калькулятор использует следующие формулы (в-основном выведенные из теоремы Пифагора), проиллюстрированные рисунком ниже:

Сначала калькулятор находит отрезок a

Чтобы найти точку P3, калькулятор использует следующую формулу (в векторном виде):

И наконец, чтобы найти точки пересечения, калькулятор использует следующие уравнения:
Первая точка:

Обратите внимание на разные знаки перед вторым слагаемым

По теме также можно посмотреть следующие ссылки (на английском языке): Circle-Circle Intersection и Circles and spheres

🔍 Видео

Деление окружности на 3 частиСкачать

Деление окружности на 3 части

Как искать точки на тригонометрической окружности.Скачать

Как искать точки на тригонометрической окружности.

Найти центр кругаСкачать

Найти центр круга

1 2 4 сопряжение окружностейСкачать

1 2 4  сопряжение окружностей

Найти площадь пересечения кругов. Задача для тех, кто учился в школе на пятеркиСкачать

Найти площадь пересечения кругов. Задача для тех, кто учился в школе на пятерки

РАДИУС ОКРУЖНОСТЬ ДИАМЕТР КРУГ / 3 КЛАСС МАТЕМАТИКА. ЧТО ТАКОЕ ОКРУЖНОСТЬ ? ЧТО ТАКОЕ РАДИУС ?Скачать

РАДИУС ОКРУЖНОСТЬ ДИАМЕТР КРУГ / 3 КЛАСС МАТЕМАТИКА. ЧТО ТАКОЕ ОКРУЖНОСТЬ ? ЧТО ТАКОЕ РАДИУС ?

Окружность и круг, 6 классСкачать

Окружность и круг, 6 класс

Найдите площадь фигуры между тремя касающимися окружностямиСкачать

Найдите площадь фигуры между тремя касающимися окружностями

10 класс, 11 урок, Числовая окружностьСкачать

10 класс, 11 урок, Числовая окружность

Как найти центр и радиус нарисованной окружности #математика #егэ2023 #школа #fyp #shortsСкачать

Как найти центр и радиус нарисованной окружности #математика #егэ2023 #школа #fyp #shorts

Черчение. Внутреннее, внешнее и смешенное сопряжение двух окружностей.Скачать

Черчение. Внутреннее, внешнее и смешенное сопряжение двух окружностей.

Быстро и легко определяем центр любой окружностиСкачать

Быстро и легко определяем центр любой окружности

Математика | 5 ЗАДАЧ НА ТЕМУ ОКРУЖНОСТИ. Касательная к окружности задачиСкачать

Математика | 5 ЗАДАЧ НА ТЕМУ ОКРУЖНОСТИ. Касательная к окружности задачи

Сопряжение окружностейСкачать

Сопряжение окружностей

Окружность вписанная в треугольник и описанная около треугольника.Скачать

Окружность вписанная в треугольник и описанная около треугольника.

Линия пересечения двух поверхностей конус и цилиндр (Метод секущих плоскостей)Скачать

Линия пересечения двух поверхностей конус и цилиндр (Метод секущих плоскостей)

Всё про углы в окружности. Геометрия | МатематикаСкачать

Всё про углы в окружности. Геометрия  | Математика
Поделиться или сохранить к себе: