Алгоритм точки пересечения окружностей

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

Даны две окружности, каждая определена координатами своего центра и радиусом. Требуется найти все их точки пересечения (либо одна, либо две, либо ни одной точки, либо окружности совпадают).

Видео:Точка встречи прямой с плоскостьюСкачать

Точка встречи прямой с плоскостью

Решение

Предположим, не теряя общности, что центр первой окружности — в начале координат (если это не так, то перенесём центр в начало координат, а при выводе ответа будем обратно прибавлять координаты центра). Тогда мы имеем систему двух уравнений:

Вычтем из второго уравнения первое, чтобы избавиться от квадратов переменных:

Таким образом, мы свели задачу о пересечении двух окружностей к задаче о пересечении первой окружности и следующей прямой:

А решение последней задачи описано в соответствующей статье.

Единственный вырожденный случай, который надо рассмотреть отдельно — когда центры окружностей совпадают. Действительно, в этом случае вместо уравнения прямой мы получим уравнение вида 0 = С, где C — некоторое число, и этот случай будет обрабатываться некорректно. Поэтому этот случай нужно рассмотреть отдельно: если радиусы окружностей совпадают, то ответ — бесконечность, иначе — точек пересечения нет.

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

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

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

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

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

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

Алгоритм точки пересечения окружностей

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

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

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

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

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

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

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

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

Алгоритм точки пересечения окружностей

Алгоритм точки пересечения окружностей

Алгоритм точки пересечения окружностей

Алгоритм точки пересечения окружностей

Алгоритм точки пересечения окружностей

Алгоритм точки пересечения окружностей

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

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

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

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

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

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

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

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

Определение точки пересечения окружности с прямой

Алгоритм точки пересечения окружностей

Перевод Кантора И.А.


Подход 1Алгоритм точки пересечения окружностейАлгоритм точки пересечения окружностей

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

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

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

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

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

(1) x 2 + y 2 = R 2 (2)(x-a) 2 + (y-b) 2 = r 2

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

-2ax-2by = R 2 — r 2 — a 2 — b 2 .

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

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

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

(1) x 2 + y 2 = R 2 (2) ax + by = C,

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

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


Подход 2Алгоритм точки пересечения окружностейАлгоритм точки пересечения окружностей

Пусть нужно найти пару точек P3 пересечения, если они существуют.

Алгоритм точки пересечения окружностей

Для начала найдем расстояние между центрами окружностей. d = || P1 — P0 ||. Если d > r0 + r1, тогда решений нет: круги лежат отдельно. Аналогично в случае d a 2 + h 2 = r0 2 and b 2 + h 2 = r1 2

Используя равенство d = a + b, мы можем разрешить относительно a:

a = (r0 2 — r1 2 + d 2 ) / (2 d)

В случае соприкосновения окружностей, это, очевидно, превратится в r0, так как: d = r0 + r1

Решим относительно h, подставив в первое уравнение h 2 = r0 2 — a 2

Таким образом, получаем координаты точек P3 = (x3,y3):

🔍 Видео

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

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

Точки пересечения прямой с поверхностью/Points of intersection of a straight line with a surface.Скачать

Точки пересечения прямой с поверхностью/Points of intersection of a straight line with a surface.

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

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

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

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

Пересечение двух плоскостей. Плоскости в виде треугольникаСкачать

Пересечение двух плоскостей. Плоскости в виде треугольника

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

Линия пересечения двух поверхностей вращения (Метод вспомогательных сфер)

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

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

Построение точки пересечения прямой и плоскостиСкачать

Построение точки пересечения прямой и плоскости

Точка пересечения двух окружностей равноудалена ... | ОГЭ 2017 | ЗАДАНИЕ 13 | ШКОЛА ПИФАГОРАСкачать

Точка пересечения двух окружностей равноудалена ... | ОГЭ 2017 | ЗАДАНИЕ 13 | ШКОЛА ПИФАГОРА

Пересечение прямой и плоскостиСкачать

Пересечение прямой и плоскости

Canvas & JavaScript | Находим точки пересечения окружностейСкачать

Canvas & JavaScript | Находим точки пересечения окружностей

Построение точек встречи прямой m с поверхностью сферыСкачать

Построение точек встречи прямой m с поверхностью сферы

Лекция 2 | Компьютерная графика | Виталий Галинский | ЛекториумСкачать

Лекция 2 | Компьютерная графика | Виталий Галинский  | Лекториум

Построение точки пересечения прямой и плоскости | Стереометрия #29 | ИнфоурокСкачать

Построение точки пересечения прямой и плоскости | Стереометрия #29 | Инфоурок

2 3 проекция точки на конусеСкачать

2 3 проекция точки на конусе

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

1 2 4  сопряжение окружностей
Поделиться или сохранить к себе: