Пересечение прямых (Hyjyvycyuny hjxbd])
В евклидовой геометрии пересечение двух прямых может быть пустым множеством, точкой или прямой. Различение этих случаев и поиск точки пересечения используется, например, в компьютерной графике, при планировании движения[англ.] и для обнаружения столкновений.
В трёхмерной евклидовой геометрии, если две прямые не лежат в одной плоскости, они называются скрещивающимися и не имеют точек пересечения. Если прямые находятся в одной плоскости, имеется три возможности. Если они совпадают, они имеют бесконечно много общих точек (а именно, все точки на этих прямых). Если прямые различны, но имеют один и тот же наклон, они параллельны и не имеют общих точек. В противном случае они имеют одну точку пересечения.
В неевклидовой геометрии две прямые могут пересекаться в нескольких точках и число непересекающихся с данной прямой других прямых (параллельных) может быть больше единицы.
Пересечение двух прямых
[править | править код]Необходимым условием пересечения двух прямых является принадлежность их одной плоскости, то есть эти прямые не должны быть скрещивающимися. Выполнение этого условия эквивалентно вырожденности тетраэдра, у которого две вершины лежат на одной прямой, а две другие — на другой (т.е. объём этого тетраэдра равен нулю). Алгебраическую форму этого условия можно посмотреть в статье «Проверка скрещенности».
Если заданы по две точки на каждой прямой
[править | править код]Две точки на каждой прямой на вещественной плоскости
[править | править код]Рассмотрим пересечение двух прямых и на вещественной плоскости, где прямая определена двумя различными точками и , а прямая — различными точками и [1].
Пересечение прямых и можно найти при помощи определителей.
Определители можно переписать в виде:
Заметим, что точка пересечения относится к бесконечным прямым, а не отрезкам между точками, и она может лежать вне отрезков. Если (вместо решения за один шаг) искать решение в терминах кривых Безье первого порядка, то можно проверить параметры этих кривых 0.0 ≤ t ≤ 1.0 и 0.0 ≤ u ≤ 1.0 (t и u — параметры).
Если две прямые параллельны или совпадают, знаменатель обращается в ноль:
Если прямые очень близки к параллельности (почти параллельны), при вычислении на компьютере могут возникнуть числовые проблемы и распознавание такого условия может потребовать подходящего теста на «неопределённость» для приложения. Более устойчивое и общее решение может быть получено при вращении отрезков таким образом, что один из них станет горизонтальным, а тогда параметрическое решение второй прямой легко получить. При решении необходимо внимательное рассмотрение специальных случаев (параллельность/совпадение прямых, наложение отрезков).
Две точки на каждой прямой на комплексной плоскости
[править | править код]Рассмотрим пересечение двух прямых и на комплексной плоскости, где прямая определена двумя различными точками и , а прямая — различными точками и . Эти прямые и имеют уравнения
соответственно[2].
Правые части равны, если — точка пересечения прямых и :
причём это уравнение справедливо и для сопряжённых комплексных чисел[2]:
Выразим из двух последних уравнений значение или и подставим его в уравнение прямой линии соответственно или , получим уравнение точки пересечения прямых и [2]:
В случае параллельных прямых линий и знаменатель этого выражения равен нулю по критерию параллельности, то есть что и следовало ожидать[3].
Упростим уравнение точки пересечения двух прямых, перейдя к векторам прямых. Пусть прямые и задаются соответственно векторами
которые подставим в уравнение точки пересечения двух прямых и получим следующее более простое уравнение для этой точки[4]:
Если заданы уравнения прямых
[править | править код]Координаты и точки пересечения двух невертикальных прямых можно легко найти с помощью следующих подстановок и преобразований.
Предположим, что две прямые имеют уравнения и , где и — угловые коэффициенты прямых, а и — пересечения прямых с осью y. В точке пересечения прямых (если они пересекаются), обе координаты будут совпадать, откуда получаем равенство:
- .
Мы можем преобразовать это равенство с целью выделения ,
- ,
а тогда
- .
Чтобы найти координату y, всё что нам нужно, это подставить значение x в одну из формул прямых, например, в первую:
- .
Отсюда получаем точку пересечения прямых
- .
Заметим, что при a = b две прямые параллельны. Если при этом c ≠ d, прямые различны и не имеют пересечений, в противном же случае прямые совпадают [5].
Использование однородных координат
[править | править код]При использовании однородных координат точка пересечения двух явно заданных прямых может быть найдена достаточно просто. В 2-мерном пространстве любая точка может быть определена как проекция 3-мерной точки, заданной тройкой . Отображение 3-мерных координат в 2-мерные происходит по формуле . Мы можем преобразовать точки в 2-мерном пространстве в однородные координаты, приравняв третью координату единице — .
Предположим, что мы хотим найти пересечение двух бесконечных прямых в 2-мерном пространстве, которые заданы формулами и . Мы можем представить эти две прямые в линейных координатах[англ.] как и ,
Пересечение двух прямых тогда просто задаётся формулами [6]
Если , прямые не пересекаются.
Пересечение n прямых
[править | править код]Существование и выражение пересечения
[править | править код]В двумерном пространстве
[править | править код]В двумерном пространстве прямые числом больше двух почти достоверно не пересекаются в одной точке. Чтобы определить, пересекаются ли они в одной точке, и, если пересекаются, чтобы найти точку пересечения, запишем i-ое уравнение (i = 1, ...,n) как и скомпонуем эти уравнения в матричный вид
где i-ая строка n × 2 матрицы A равна , w является 2 × 1 вектором (x, y)T, а i-ый элемент вектора-столбца b равен bi. Если столбцы матрицы A независимы, ранг матрицы равен 2. Тогда и только тогда, когда ранг расширенной матрицы[англ.] [A | b ] равен также 2, существует решение матричного уравнения, а тогда существует и точка пересечения n прямых. Точка пересечения, если таковая существует, задаётся формулой
где — псевдообратная матрица матрицы . Альтернативно решение может быть найдено путём решения любых двух независимых уравнений. Но если ранг матрицы A равен 1, а ранг расширенной матрицы равен 2, решений нет. В случае же, когда ранг расширенной матрицы равен 1, все прямые совпадают.
В трёхмерном пространстве
[править | править код]Представленный выше подход без труда распространяется на трёхмерное пространство. В трёхмерном и более высоких пространствах даже две прямые почти наверняка не пересекаются. Пары непараллельных непересекающихся прямых называются скрещивающимися. Но когда пересечение существует, его можно найти следующим образом.
В трёхмерном пространстве прямая представляется пересечением двух плоскостей, каждая из которых задаётся формулой Тогда множество n прямых может быть представлено в виде 2n уравнений от 3-мерного координатного вектора w = (x, y, z)T:
- ,
где A — матрица 2n × 3, а b — 2n × 1. Как и ранее, единственная точка пересечения существует тогда и только тогда, когда A имеет полный ранг по столбцам, а расширенная матрица [A | b ] таковой не является. Единственная точка пересечения, если существует, задаётся формулой
Ближайшая точка к непересекающимся прямым
[править | править код]В размерностях два и выше можно найти точку, которая является ближайшей к этим двум (или более) прямым в смысле наименьшей суммы квадратов.
В двумерном пространстве
[править | править код]В случае двумерного пространства представим прямую i как точку на прямой и единичную нормаль , перпендикулярную прямой. То есть, если и — точки на прямой 1, то пусть и
- ,
который является единичным вектором вдоль прямой, повёрнутым на 90º.
Заметим, что расстояние от точки x до прямой задаётся формулой
Следовательно, квадрат расстояния от x до прямой равен
Сумма квадратов расстояний до набора прямых является целевой функцией:
Выражение можно преобразовать:
Чтобы найти минимум, продифференцируем по x и приравняем результат нулю:
Таким образом,
откуда
В трёхмерном пространстве
[править | править код]Хотя в размерностях выше двух нормаль не определить, его можно обобщить на любую размерность, если заметить, что является просто (симметричной) матрицей со всеми собственными значениями, равными единице, кроме нулевого собственного значения в направлении прямой, что задаёт полунорму между точкой и другой точкой. В пространстве любой размерности, если является единичным вектором вдоль i-ой прямой, то
- превращается в ,
где E — единичная матрица, а тогда
См. также
[править | править код]Примечания
[править | править код]- ↑ Weisstein, Eric W. "Line-Line Intersection." From MathWorld . A Wolfram Web Resource. Дата обращения: 10 января 2008. Архивировано 10 октября 2007 года.
- ↑ 1 2 3 Zwikker C. The Advanced Geometry of Plane Curves and Their Applications, 1963, Chapter III. The straight line, p. 34.
- ↑ Zwikker C. The Advanced Geometry of Plane Curves and Their Applications, 1963, Chapter III. The straight line, p. 34—35.
- ↑ Zwikker C. The Advanced Geometry of Plane Curves and Their Applications, 1963, Chapter III. The straight line, p. 37—38.
- ↑ Похожие выкладки можно найти в книге Делоне и Райкова (стр. 202-203)
- ↑ Homogeneous coordinates . robotics.stanford.edu. Дата обращения: 18 августа 2015. Архивировано 23 августа 2015 года.
Литература
[править | править код]- Б. Н. Делоне, Д. А. Райков. Аналитическая геометрия. — М., Л.: ОГИЗ, Государственнон издательство технико-теоретической литературы, 1948. — Т. 1.
- Zwikker C.[англ.] The Advanced Geometry of Plane Curves and Their Applications[англ.]The Advanced Geometry of Plane Curves and Their Applications. New York: Dover Publications, Inc., 1963. 299 p. ISBN 0486610780. ISBN 9780486610788.
Ссылки
[править | править код]- Distance between Lines and Segments with their Closest Point of Approach, applicable to two, three, or more dimensions.
Для улучшения этой статьи желательно:
|