Как найти площадь пересечения двух окружностей
Перейти к содержимому

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

  • автор:

Как найти площадь пересечения окружностей?

должна быть равна примерно 9.57019, но у меня выводит что-то непонятное:

Отслеживать
35.6k 3 3 золотых знака 28 28 серебряных знаков 63 63 бронзовых знака
задан 27 ноя 2016 в 20:06
1,159 2 2 золотых знака 12 12 серебряных знаков 27 27 бронзовых знаков
+D^2 , а у вас минус.
27 ноя 2016 в 20:19

Рекомендую использовать double вместо float в подобных расчётах, если нет специальных ограничений на этот счёт.

28 ноя 2016 в 6:17
Ещё: если одна окружность внутри другой, то их площадь пересечения равна площади меньшей из них.
28 ноя 2016 в 6:18

Так, погодите. Сначала я подумал, что вы используете слово окружность в обыденном смысле, а не в математическом. В математическом смысле любая окружность имеет нулевую площадь (это тонкая линия), поэтому любое пересечение с чем угодно при любом раскладе будет иметь нулевую площадь. Так что даже формулы не нужны. А я дал комментарий именно для слова «круг».

28 ноя 2016 в 9:38

@vp_arth: С теоретико-множественной точки зрения пересечение двух множеств есть подмножество любого из них. Так что пересечение окружностей в типичном случае — две точки, а не ограниченный участок.

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

Позволяет рассчитать площадь пересечения двух окружностей произвольных радиусов.

Используются достаточно простые формулы, которые элементарно доказываются.

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

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

Площадь пересечения двух окружностей состоит из двух сегментов FDG и FBG

Вывести формулу расчета площади пересечения двух окружностей можно из двух общеизвестных формул и знаний решения треугольника:

Формулы сектора окружности

и длина хорды окружности

По известным сторонам треугольника AFС определяем высоту на сторону AC.

Удвоением этой высоты мы получаем длину хорды, после этого узнаем угол альфа по второй формуле.

По известным сторонам треугольника AFG узнаем его площадь. Вычитаем её из площади сектора окружности, ведь угол альфа нам уже известен.

И получаем площадь сегмента FBG

Подобным образом вычисляем FDG

Это лишь один из способов решения задачи вычисления площади пересечения двух окружностей.

— радиус первой окружности

— радиус второй окружности

— расстояние между центрами окружностей

Пример

Хотим узнать площадь пересечения двух окружностей радиусом в 1 и расстоянием между центрами 0.8079455

Пишем okr 1 1 0.8079455

Площадь двух пересекающихся окружностей равна = 1.5707963388681~ \(\pi/2\)

Первая окружность радиус 4, вторая окружность радиус 2, расстоянием между центрами 3

Пишем okr 4 2 3

Площадь двух пересекающихся окружностей равна = 9.5701994729833

Первая окружность радиус 4, вторая окружность радиус 2, расстоянием между центрами 0

Пишем okr 4 2 0

Окружности не пересекаются

Площадь пересечения окружностей на плоскости | 2012-10-25 04:30:39 | Варламов Дмитрий |

—> Определение площади пересечения двух окружностей онлайн на плоскости. Определение координат пересечения | площадь, пересечения, окружностей, формула, расчета

  • Русский и английский алфавит в одну строку
  • Расчет пропорций и соотношений
  • Часовая и минутная стрелка онлайн.Угол между ними.
  • Массовая доля химического вещества онлайн
  • Декoдировать текст \u0xxx онлайн
  • Универсальный калькулятор комплексных чисел онлайн
  • Перемешать буквы в тексте онлайн
  • Частотный анализ текста онлайн
  • Поворот точек на произвольный угол онлайн
  • Обратный и дополнительный код числа онлайн
  • Остаток числа в степени по модулю
  • Площадь многоугольника по координатам онлайн
  • Растворимость металлов в различных жидкостях
  • Как перевести градусы в минуты и секунды
  • Расчет процентов онлайн
  • Поиск объекта по географическим координатам
  • DameWare Mini Control. Настройка.
  • Время восхода и захода Солнца и Луны для местности
  • Калькулятор географических координат
  • Расчет значения функции Эйлера
  • Произвольный треугольник по заданным параметрам
  • НОД двух многочленов. Greatest Common Factor (GCF)
  • Теория графов. Матрица смежности онлайн
  • Перевод числа в код Грея и обратно
  • Сообщество животных. Кто как называется?
  • Проекция точки на плоскость онлайн
  • Площадь пересечения окружностей на плоскости
  • Непрерывные, цепные дроби онлайн
  • Из показательной в алгебраическую. Подробно
  • Географические координаты любых городов мира
  • Онлайн определение эквивалентного сопротивления
  • Калькулятор онлайн расчета количества рабочих дней
  • Система комплексных линейных уравнений
  • Определение формулы касательной к окружности
  • Расчет понижающего конденсатора
  • Расчет заряда и разряда конденсатора через сопротивление
  • Месторождения золота и его спутники
  • Каноническое уравнение гиперболы по двум точкам
  • Дата выхода на работу из отпуска, декрета онлайн
  • Построить ненаправленный граф по матрице

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

Monte-Carlo

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

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

Обоснование

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

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

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

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

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

Собираем массив пересечений пар окружностей

var nodes = d3.selectAll("circle.node"); var squares = []; var intersections = []; nodes.each(function(node)< // считаем радиус и площадь окружности var r = this.r.baseVal.value; var s = 3.14159*r*r; squares.push(); // ищем пересечения пар окружностей nodes.each(function(node2)< // расстояние между центрами и сумма радиусов var center_dist = Math.sqrt(Math.pow(node.x-node2.x, 2)+(Math.pow(node.y-node2.y, 2))); var radius_sum = r + this.r.baseVal.value; if(center_dist ); > >); >); 

Считаем площадь фигуры

var areaCalculator = < intersections: [], // массив пересечений, устанавливается снаружи frame: <>, // рамка вокруг фигуры circles: [], // массив окружностей figureArea: 0, // искомая площадь фигуры monteCarlo: function(p) < // получаем массив окружностей из пересечения var circles = []; var x1_, y1_, x2_, y2_; // координаты сторон прямоугольника var inCirclesArr = function(node)< for(var j=0; j> return false; >; for(var i=0; i if(!inCirclesArr(this.intersections[i].node2)) < circles.push(this.intersections[i].node2); >> this.circles = circles; circles.sort(function(a,b) < return a.x-a.r >b.x-b.r ? 1 : -1; >); x1_ = circles[0].x-circles[0].r; circles.sort(function(a,b)< return a.x+a.r < b.x+b.r ? 1 : -1; >); x2_ = circles[0].x+circles[0].r; circles.sort(function(a,b) < return a.y-a.r >b.y-b.r ? 1 : -1; >); y1_ = circles[0].y-circles[0].r; circles.sort(function(a,b)< return a.y+a.r < b.y+b.r ? 1 : -1; >); y2_ = circles[0].y+circles[0].r; this.frame.x1 = x1_; this.frame.x2 = x2_; this.frame.y1 = y1_; this.frame.y2 = y2_; this.frame.area = (x2_-x1_)*(y2_-y1_); // рисуем прямоугольник paintRect(this.frame); // p - количество генерируемых точек. В примере использовалось 100.000, чего хватило для приемлемой точности var p_positive = 0; // количество точек попавших в фигуру // генерируем p точек для определения площади фигуры for(var i=0; i= x_rand && (circles[j].y-circles[j].r) = y_rand ) ) < yes = true; p_positive++; >> > // площадь фигуры = площадь прямоугольника*кол-во точек внутри фигуры / общее кол-во точек this.figureArea = this.frame.area*p_positive/p; > >; 

Результат

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

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

Заключение

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

  • Ненормальное программирование
  • JavaScript
  • Алгоритмы

Вопрос по геометрии (пересечение окружностей)

Дано:
окружность 1 радиусом R1 пересекается с окружностью 2, радиусом R2
Расстояние между центрами окружностей равно А
Необходимо:
представить формулу, позволяющую вычислить площадь фигуры, образованной пересечением этих окружностей.
(давайте обойдёмся без ссылок на учебники за какой-то класс или курс, нужна именно формула)

Лучший ответ

Виктор — неправильно 🙂 Вы посчитали разность площадей двух окружностей, что никакого отношению не имеет к их данной диспозиции.

Я сейчас немного почеркала на листочке, формула получается немного громоздкая, писать ее не буду, но дам совет, как посчитать.
Искомая площадь есть сумма площадей двух сегментов, образованных от каждой окружности путем отсечения части окружности хордой, проведенной через точки пересечения окружностей.
Площадь сегмента есть разница между площадью сектора, заключенного между радиусами и дугой, заключенной между точками пересечения окружностей, и треугольника, построенного на радиусах и хорде, стягивающей упоминаемую дугу.
Нам потребуется длина той части А, которая находится в искомой площади, назовем ее Х. Она равно R1+R2-A.
Площадь треугольника — половина произведения основания на высоту. Высота находится легко: это разность между радиусом, и той частью Х, что заключена между точкой пересечения мередианного (для сектора) радиуса с окружностью и с хордой, стягивающей дугу между точками пересечения окружностей. Эта самая часть для большей окружности равна Х/2 умноженная на отношение радиуса меньшей окружности к радиусу большей окружности; для меньшей окружности эта часть рана Х/2 умноженная на отношение радиуса большей окружности к радиусу меньшей.
Зная высоту и стороны треугольника, находим основание по правилу прямоугольного треугольника и попутно значение угла, стягиваемого упоминаемой дугой (это уже элементарная геометрия).
Далее находим площадь треугольника и площадь сектора ((пи х радиус в квадрате х величину угла в градусах)/360), и из их разности площадь сегмента.
Проделываем эту процедуру для каждой окружности и складываем полученные площади. Искомая площадь найдена 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *