stringtranslate.com

Пересечение линии с линией

Две пересекающиеся линии

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

В трехмерной евклидовой геометрии, если две прямые не лежат в одной плоскости , они не имеют точек пересечения [1] и называются скрещивающимися прямыми . Однако, если они лежат в одной плоскости, есть три возможности: если они совпадают (не являются различными прямыми), они имеют бесконечное множество общих точек (а именно, все точки на любой из них); если они различны, но имеют одинаковый наклон , они называются параллельными и не имеют общих точек; в противном случае они имеют одну точку пересечения.

Отличительными чертами неевклидовой геометрии являются количество и места возможных пересечений между двумя прямыми, а также количество возможных прямых, не пересекающихся (параллельных прямых) с данной прямой. [ необходимо дополнительное объяснение ]

Формулы

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

Даны две точки на каждой линии

Сначала рассмотрим пересечение двух линий L 1 и L 2 в двумерном пространстве, при этом линия L 1 определяется двумя различными точками ( x 1 , y 1 ) и ( x 2 , y 2 ) , а линия L 2 определяется двумя различными точками ( x 3 , y 3 ) и ( x 4 , y 4 ) . [2]

Пересечение P прямых L 1 и L 2 можно определить с помощью определителей .

Определители можно записать как:

Если две прямые параллельны или совпадают, знаменатель равен нулю.

Даны две точки на каждом отрезке прямой

Точка пересечения выше относится к бесконечно длинным линиям, определяемым точками, а не отрезками между точками, и может создать точку пересечения, не содержащуюся ни в одном из двух отрезков. Чтобы найти положение пересечения относительно отрезков, мы можем определить линии L 1 и L 2 в терминах параметров Безье первой степени :

(где t и u — действительные числа). Точка пересечения линий находится при одном из следующих значений t или u , где

и

с

Пересечение будет, если 0 ≤ t ≤ 1 и 0 ≤ u ≤ 1. Точка пересечения попадает в первый отрезок линии, если 0 ≤ t ≤ 1 , и попадает во второй отрезок линии, если 0 ≤ u ≤ 1. Эти неравенства можно проверить без необходимости деления, что позволяет быстро определить существование любого пересечения отрезков линии до вычисления его точной точки. [3]

Даны два уравнения линии

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

Предположим, что две линии имеют уравнения y = ax + c и y = bx + d, где a и b — наклоны ( градиенты) линий, а c и dy -пересечения линий. В точке пересечения двух линий (если они пересекаются) обе координаты y будут одинаковыми, отсюда и следующее равенство:

Мы можем перестроить это выражение, чтобы извлечь значение x ,

и так,

Чтобы найти координату y , нам нужно всего лишь подставить значение x в одно из двух уравнений прямой, например, в первое:

Следовательно, точка пересечения — это

Обратите внимание, что если a = b , то две прямые параллельны и не пересекаются, если только c = d ; в этом случае прямые совпадают и пересекаются в каждой точке.

Использование однородных координат

Используя однородные координаты , точку пересечения двух неявно определенных линий можно определить довольно легко. В 2D каждая точка может быть определена как проекция 3D точки, заданной как упорядоченная тройка ( x , y , w ) . Отображение из 3D в 2D координаты есть ( x ′, y ′) = ( х/ж , у/ж ) ​​. Мы можем преобразовать 2D-точки в однородные координаты, определив их как ( x , y , 1) .

Предположим, что мы хотим найти пересечение двух бесконечных прямых в 2-мерном пространстве, определяемое как a 1 x + b 1 y + c 1 = 0 и a 2 x + b 2 y + c 2 = 0 . Мы можем представить эти две прямые в линейных координатах как U 1 = ( a 1 , b 1 , c 1 ) и U 2 = ( a 2 , b 2 , c 2 ) . Пересечение P двух прямых тогда просто задается как [4]

Если c p = 0 , то прямые не пересекаются.

Более двух строк

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

В двух измерениях

В двух измерениях более двух прямых почти наверняка не пересекаются в одной точке. Чтобы определить, пересекаются ли они, и если да, то найти точку пересечения, запишите i -е уравнение ( i = 1, …, n ) как

и сложить эти уравнения в матричную форму как

где i -я строка матрицы A размером n × 2 равна [ a i 1 , a i 2 ] , w — вектор размером 2 × 1 [х
у
]
, аi-й элемент вектора-столбца b равен b i . Если A имеет независимые столбцы, еерангравен 2. Тогда тогда и только тогда, когда ранграсширенной матрицы [ A | b ]также равен 2, существует решение матричного уравнения и, следовательно, точка пересеченияnлиний. Точка пересечения, если она существует, задается как

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

В трех измерениях

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

В трех измерениях линия представлена ​​пересечением двух плоскостей, каждая из которых имеет уравнение вида

Таким образом, набор из n линий можно представить с помощью 2 n уравнений в трехмерном координатном векторе w :

где теперь A равно 2 n × 3 , а b равно 2 n × 1. Как и прежде, существует единственная точка пересечения тогда и только тогда, когда A имеет полный ранг столбца, а расширенная матрица [ A | b ] — нет, и единственное пересечение, если оно существует, задается формулой

Ближайшие точки к скрещивающимся линиям

PQ, кратчайшее расстояние между двумя скрещивающимися прямыми AB и CD перпендикулярно как AB, так и CD

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

В двух измерениях

В двумерном случае сначала представим линию i как точку p i на линии и единичный нормальный вектор i , перпендикулярный этой линии. То есть, если x 1 и x 2 — точки на линии 1, то пусть p 1 = x 1 и пусть

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

Расстояние от точки x до прямой ( p , ) определяется по формуле

Итак, квадрат расстояния от точки x до прямой равен

Сумма квадратов расстояний до многих линий представляет собой функцию стоимости :

Это можно переставить:

Чтобы найти минимум, дифференцируем по x и приравниваем результат к нулевому вектору:

так

и так

В более чем двух измерениях

Хотя i не является хорошо определенным в более чем двух измерениях, это можно обобщить на любое число измерений, заметив, что i i T — это просто симметричная матрица со всеми собственными значениями, равными единице, за исключением нулевого собственного значения в направлении вдоль линии, что обеспечивает полунорму на расстоянии между p i и другой точкой, дающей расстояние до линии. В любом числе измерений, если i — единичный вектор вдоль i -й линии , то

становится

где Iединичная матрица , и поэтому [5]

Общий вывод

Чтобы найти точку пересечения набора прямых, мы вычисляем точку с минимальным расстоянием до них. Каждая прямая определяется началом a i и единичным вектором направления i . Квадрат расстояния от точки p до одной из прямых дается из Пифагора:

где ( pa i ) T i — проекция pa i на линию i . Сумма расстояний до квадрата до всех линий равна

Чтобы минимизировать это выражение, продифференцируем его по p .

что приводит к

где Iединичная матрица . Это матрица Sp = C , с решением p = S + C , где S +псевдообратная матрица S.

Неевклидова геометрия

Слева направо: евклидова геометрия, сферическая геометрия и гиперболическая геометрия.
Слева направо: евклидова геометрия, сферическая геометрия и гиперболическая геометрия.

В сферической геометрии любые два больших круга пересекаются. [6]

В гиперболической геометрии для любой прямой и любой точки существует бесконечно много прямых, проходящих через эту точку и не пересекающих данную прямую. [6]

Смотрите также

Ссылки

  1. ^ Кук, Джереми (21 ноября 2023 г.). «Компланарные прямые в геометрии | Определение, диаграммы и примеры» . Получено 1 ноября 2024 г.
  2. ^ Weisstein, Eric W. "Пересечение прямых". MathWorld . Получено 10.01.2008 .
  3. ^ Антонио, Франклин (1992). "Глава IV.6: Более быстрое пересечение отрезков линий". В Kirk, David (ред.). Graphics Gems III . Academic Press, Inc. стр. 199–202. ISBN 0-12-059756-X.
  4. ^ Birchfield, Stanley (1998-04-23). ​​"Однородные координаты". robotics.stanford.edu . Архивировано из оригинала 2000-09-29 . Получено 2015-08-18 .
  5. ^ Траа, Йоханнес (2013). "Пересечение линий по методу наименьших квадратов" (PDF) . cal.cs.illinois.edu . Архивировано из оригинала (PDF) 2017-09-12 . Получено 2018-08-30 .
  6. ^ ab "Исследование гиперболического пространства" (PDF) . math.berkeley.edu . Получено 2022-06-03 .

Внешние ссылки