Пересечение (евклидова геометрия)

Материал из testwiki
Перейти к навигации Перейти к поиску

Пересечение в евклидовой геометрии — точка или кривая, общие для двух или более объектов (таких как кривые, плоскости и поверхности). Простейший случай — пересечение двух различных прямых на плоскости, которое либо является одной точкой, либо не существует, если прямые параллельные.

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

Задача нахождения пересечения плоскостей — двумерных линейных геометрических объектов, встроенных в многомерное пространство — сводится к решению системы линейных уравнений.

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

На плоскости

Шаблон:Подробно

Две линии

Шаблон:Main Для определения точки пересечения двух непараллельных прямых:

a1x+b1y=c1, a2x+b2y=c2

можно использовать, например, правило Крамера, или подставляя переменную, координаты точки пересечения (xs,ys):

xs=c1b2c2b1a1b2a2b1,ys=a1c2a2c1a1b2a2b1.

(Если a1b2a2b1=0, то эти линии параллельны, а это значит, что эти формулы нельзя использовать, так как они предполагают деление на 0.)

Два отрезка

Шаблон:See also

Пересечение двух отрезков прямой

Для двух непараллельных линейных отрезков (x1,y1),(x2,y2) и (x3,y3),(x4,y4) эта точка не обязательно является точкой пересечения (см. диаграмму), потому что точка пересечения (x0,y0) соответствующих линий не обязательно должна содержаться в линейных отрезках. Для проверки ситуации используются параметрические представления линий:

(x(s),y(s))=(x1+s(x2x1),y1+s(y2y1)),
(x(t),y(t))=(x3+t(x4x3),y3+t(y4y3)).

Отрезки пересекаются только в общей точке (x0,y0) соответствующих линий, если соответствующие параметры s0,t0 удовлетворяют условию 0s0,t01. Параметры s0,t0 являются решением линейной системы

s(x2x1)t(x4x3)=x3x1,
s(y2y1)t(y4y3)=y3y1 .

Его можно решить для s и t с помощью правила Крамера (см. выше). Если выполняется условие 0s0,t01, то вставляется s0 или t0 в соответствующее параметрическое представление и получается точка пересечения (x0,y0).

Пример: Для отрезков (1,1),(3,2) и (1,4),(2,1) получается линейная система

2st=0
s+5t=3

и s0=311,t0=611. Это означает: линии пересекаются в точке (1711,1411).

Примечание: Рассматривая прямые, а не отрезки, определяемые парами точек, каждое условие 0s0,t01 может быть опущено, и метод даёт точку пересечения линий (см. выше).

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

Линия и круг

Для пересечения отрезка ax+by=c и окружности x2+y2=r2 решают линейное уравнение для Шаблон:Mvar или Шаблон:Mvar и подставляют в уравнение окружности и получают решение (используя формулу квадратного уравнения) (x1,y1),(x2,y2) с:

x1/2=ac±br2(a2+b2)c2a2+b2,
y1/2=bcar2(a2+b2)c2a2+b2,

если r2(a2+b2)c20. Если это условие выполняется со строгим неравенством, то существуют две точки пересечения; в этом случае прямая называется секущей линией окружности, а отрезок прямой, соединяющий точки пересечения, называется хордой окружности.

Если выполняется r2(a2+b2)c2=0, то существует только одна точка пересечения и прямая касается окружности. Если слабое неравенство не выполняется, линия не пересекает окружность.

Если середина круга не является началом координатШаблон:Sfn, можно рассматривать пересечение прямой и параболы или гиперболы.

Две окружности

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

(xx1)2+(yy1)2=r12, (xx2)2+(yy2)2=r22

сводится к предыдущему случаю пересечения прямой и окружности. Путём вычитания двух данных уравнений получается линейное уравнение:

2(x2x1)x+2(y2y1)y=r12x12y12r22+x22+y22.

Эта особая линия является радикальной осью двух окружностей.

Пересечение двух окружностей с центрами на оси абсцисс, их радикальная ось тёмно-красного цвета.

Особый случай x1=y1=y2=0; в этом случае начало координат — это центр первого круга, а второй центр лежит на оси абсцисс (см. диаграммуШаблон:Уточнить). Уравнение радикальной прямой упрощается до: 2x2x=r12r22+x22 а точки пересечения можно записать как (x0,±y0) с

x0=r12r22+x222x2,y0=r12x02 .

В случае r12<x02 окружности не имеют общих точек.
В случае r12=x02 окружности имеют одну общую точку, а радикальная ось является общей касательной.

Любой общий случай, как написано выше, можно превратить сдвигом и поворотом в частный случай.

Пересечение двух кругов (внутренности двух окружностей) образует форму, называемую Шаблон:Нп5.

Пересечение круга и эллипса.

Два конических сечения

Задача пересечения эллипса, гиперболы, параболы с другим коническим сечением сводится к системе квадратных уравнений, которую в частных случаях легко решить, исключив одну координату. Специальные свойства конических сечений могут быть использованы для получения решения. В общем, точки пересечения могут быть определены путём решения уравнения с помощью итерации Ньютона. Если а) обе коники заданы неявно (посредством уравнения), необходима двумерная итерация Ньютона; б) одна неявно, а другая параметрически — необходимо, чтобы была задана 1-мерная итерация Ньютона.

Две плавные кривые

Трансверсальное пересечение двух кривых.
Касание пересечения (слева), касание (справа).

Две кривые в 2 (двумерном пространстве), которые непрерывно дифференцируемы (то есть нет резкого изгиба), имеют точку пересечения, если они имеют общую точку плоскости и имеют в этой точке

a: разные касательные (трансверсальное пересечение) или
b: касательная линия общая, и они пересекают друг друга (касание пересечения, см. диаграмму).

Если обе кривые имеют общую точку Шаблон:Mvar и касательную, но не пересекают друг друга, они просто «касаются» в точке Шаблон:Mvar.

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

Пересечение параметрической и неявной кривых.
Пересечение двух неявных кривых.
  • Если заданы обе кривые явно: y=f1(x), y=f2(x), приравнивание их даёт уравнение
f1(x)=f2(x) .
  • Если заданы обе кривые параметрически: C1:(x1(t),y1(t)), C2:(x2(s),y2(s)).
Приравнивая их, получаем два уравнения с двумя переменными:
x1(t)=x2(s), y1(t)=y2(s) .
  • Если заданы одна кривая параметрически, а другая неявно: C1:(x1(t),y1(t)), C2:f(x,y)=0.
Это простейший случай помимо явного. Нужно вставить параметрическое представление C1 в уравнение f(x,y)=0 кривой C2, и получится уравнение:
f(x1(t),y2(t))=0 .
  • Если заданы обе кривые неявно: C1:f1(x,y)=0, C2:f2(x,y)=0.
Здесь точка пересечения — это решение системы
f1(x,y)=0, f2(x,y)=0 .

Любая итерация Ньютона требует удобных начальных значений, которые можно получить, визуализировав обе кривые. Параметрически или явно заданная кривая может быть легко визуализирована, потому что для любого параметра Шаблон:Mvar или Шаблон:Mvar соответственно легко вычислить соответствующую точку. Для неявно заданных кривых эта задача не так проста. В этом случае необходимо определить точку кривой с помощью начальных значений и итерацииШаблон:Sfn.

Примеры:

1: C1:(t,t3) и окружность C2:(x1)2+(y1)210=0 (см диаграмму).
Итерация Ньютона tn+1:=tnf(tn)f(tn) для функции
f(t)=(t1)2+(t31)210 должна быть выполнена. В качестве начальных значений можно выбрать −1 и 1.5.
Точки пересечения: (−1.1073, −1.3578), (1.6011, 4.1046)
2:C1:f1(x,y)=x4+y41=0,
C2:f2(x,y)=(x0.5)2+(y0.5)21=0 (см диаграмму).
Итерация Ньютона
(xn+1yn+1)=(xn+δxyn+δy) должна быть выполнена, где (δxδy) является решением линейной системы
(f1xf1yf2xf2y)(δxδy)=(f1f2) в точке (xn,yn). В качестве начальных значений можно выбрать (−0.5, 1) и (1, −0.5).
Линейная система может быть решена по правилу Крамера.
Точками пересечения являются (−0.3686, 0.9953) и (0.9953, −0.3686).

Два многоугольника

Пересечение двух многоугольников: метод окон.

Если кто-то хочет определить точки пересечения двух многоугольников, можно проверить пересечение любой пары линейных сегментов многоугольников (см. выше). Для многоугольников с большим количеством сегментов этот метод довольно трудоёмок. На практике алгоритм пересечения ускоряется с помощью оконных тестов. В этом случае можно разделить многоугольники на маленькие подполигоны и определить наименьшее окно (прямоугольник со сторонами, параллельными осям координат) для любого подполигона. Перед началом трудоёмкого определения точки пересечения двух отрезков линии любая пара окон проверяется на наличие общих точекШаблон:Sfn

В пространстве (три измерения)

Шаблон:Further В трёхмерном пространстве есть точки пересечения (общие точки) между кривыми и поверхностями. В следующих разделах мы рассматриваем только трансверсальное пересечение.

Линия и плоскость

Шаблон:Main

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

Пересечение прямой и плоскости в общем положении в трёх измерениях является точкой.

Обычно линия в пространстве представляется параметрически (x(t),y(t),z(t)), а плоскость — уравнением ax+by+cz=d. Вставка представления параметра в уравнение даёт линейное уравнение

ax(t)+by(t)+cz(t)=d ,

для параметра t0 точки пересечения (x(t0),y(t0),z(t0)).

Если линейное уравнение не имеет решения, либо прямая лежит на плоскости, либо параллельна ей.

Шаблон:Hider hiding

Три плоскости

Если линия определяется двумя пересекающимися плоскостями εi: nix=di, i=1,2 и должна пересекаться третьей плоскостью ε3: n3x=d3, необходимо оценить общую точку пересечения трёх плоскостей.

Три плоскости εi: nix=di, i=1,2,3 с линейно независимыми нормальными векторами n1,n2,n3 имеют точку пересечения

p0=d1(n2×n3)+d2(n3×n1)+d3(n1×n2)n1(n2×n3) .

Для доказательства следует установить nip0=di, i=1,2,3, используя правила тройного скалярного произведения. Если тройное скалярное произведение равно 0, то плоскости либо не имеют тройного пересечения, либо это прямая (или плоскость, если все три плоскости одинаковы).

Кривая и поверхность

Пересечение кривой (t,t2,t3)
с поверхностью x4+y4+z4=1

Аналогично плоскому случаю следующие случаи приводят к нелинейным системам, которые могут быть решены с использованием 1- или 3-мерной итерации НьютонаШаблон:Sfn:

  • параметрическая кривая C:(x(t),y(t),z(t)) и
параметрическая поверхность S:(x(u,v),y(u,v),z(u,v)) ,
  • параметрическая кривая C:(x(t),y(t),z(t)) и
неявная поверхность S:f(x,y,z)=0 .

Пример:

параметрическая кривая C:(t,t2,t3) и
неявная поверхность S:x4+y4+z41=0 (см. рисунок).
Точки пересечения: (−0.8587, 0.7374, −0.6332), (0.8587, 0.7374, 0.6332).

Шаблон:Нп5 — это частный случай.

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

Прямая и многогранник

Шаблон:Main

Две поверхности

Шаблон:Main Две трансверсально пересекающиеся поверхности дают Шаблон:Нп5. Самый простой случай — линия пересечения двух непараллельных плоскостей.

Примечания

Шаблон:Примечания

Литература

Шаблон:Rq