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

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

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

Решение

Вместо формального решения системы двух уравнений подойдём к задаче с геометрической стороны (причём, за счёт этого мы получим более точное решение с точки зрения численной устойчивости).

Предположим, не теряя общности, что центр окружности находится в начале координат (если это не так, то перенесём его туда, исправив соответствующе константу C в уравнении прямой). Т.е. имеем окружность с центром в (0,0) радиуса r и прямую с уравнением Ax + By + C = 0.

Сначала найдём ближайшую к центру точку прямой — точку с некоторыми координатами (x0,y0). Во-первых, эта точка должна находиться на таком расстоянии от начала координат:

Во-вторых, поскольку вектор (A,B) перпендикулярен прямой, то координаты этой точки должны быть пропорциональны координатам этого вектора. Учитывая, что расстояние от начала координат до искомой точки нам известно, нам нужно просто нормировать вектор (A,B) к этой длине, и мы получаем:

(здесь неочевидны только знаки ‘минус’, но эти формулы легко проверить подстановкой в уравнение прямой — должен получиться ноль)

Зная ближайшую к центру окружности точку, мы уже можем определить, сколько точек будет содержать ответ, и даже дать ответ, если этих точек 0 или 1.

Действительно, если расстояние от (x0, y0) до начала координат (а его мы уже выразили формулой — см. выше) больше радиуса, то ответ — ноль точек. Если это расстояние равно радиусу, то ответом будет одна точка — (x0,y0). А вот в оставшемся случае точек будет две, и их координаты нам предстоит найти.

Итак, мы знаем, что точка (x0, y0) лежит внутри круга. Искомые точки (ax,ay) и (bx,by), помимо того что должны принадлежать прямой, должны лежать на одном и том же расстоянии d от точки (x0, y0), причём это расстояние легко найти:

Заметим, что вектор (-B,A) коллинеарен прямой, а потому искомые точки (ax,ay) и (bx,by) можно получить, прибавив к точке (x0,y0) вектор (-B,A), нормированный к длине d (мы получим одну искомую точку), и вычтя этот же вектор (получим вторую искомую точку).

Окончательное решение такое:

Если бы мы решали эту задачу чисто алгебраически, то скорее всего получили бы решение в другом виде, которое даёт бОльшую погрешность. Поэтому «геометрический» метод, описанный здесь, помимо наглядности, ещё и более точен.

Реализация

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

Поэтому входные параметры — это радиус окружности и коэффициенты A,B,C уравнения прямой.

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

Найти точки пересечения окружности ( x — 1) 2 + (y — 2) 2 = 4 и прямой y = 2x.

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

Подставляя в первое уравнение 2x вместо y и раскрывая скобки, получим

Подставляя эти значения во второе уравнение y = 2x, получим

и .

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

Для того чтобы найти точку пересечения окружности и прямой, данные уравнения записываются как система. Решить систему уравнений — это значит найти множество её решений, которое представляет собой набор значений всех входящих в неё переменных, обращающий каждое уравнение системы в верное равенство. Данную систему уравнений целесообразно решить методом подстановки. Для определения координат точки анализируется знак абсциссы и ординаты найденных точек пересечения окружности с прямой. Таким образом, найденные координаты точки и являются решением задачи.

Следует отметить, что решением данной задачи можно воспользоваться в качестве подготовки к ОГЭ по математике.


источники:

http://www.pm298.ru/reshenie/qwq43.php

http://www.virtualacademy.ru/lesson/1466/