Перетин прямих

В геометрії Евкліда перетином двох прямих може бути порожня множина, точка або пряма. Розрізнення цих випадків і пошук точки перетину використовується, наприклад, в комп'ютерній графіці, при плануванні руху і для виявлення зіткнень.

Перетин прямих.

У тривимірної геометрії Евкліда, якщо для двох прямих немає такої площині, якій би вони належали, то вони називаються мимобіжними прямими і не мають точок перетину. Якщо прямі знаходяться в одній площині, то є три можливості. Якщо вони збігаються, вони мають нескінченно багато спільних точок (а саме, всі точки на цих прямих). Якщо прямі різні, але мають один і той же нахил, вони паралельні і не мають спільних точок. В іншому випадку вони мають одну точку перетину.

У неевклідової геометрії дві прямі можуть перетинатися в декількох точках і кількість прямих, які не перетинаються з даною прямою (паралельних) може бути більшим за одиницю.

Перетин двох прямих

Необхідною умовою перетину двох прямих є приналежність їх одній площині, тобто ці прямі не повинні бути мимобіжними прямими. Виконання цієї умови еквівалентно виродженості чотиригранника, у якого дві вершини лежать на одній прямій, а дві інші — на іншій (тобто об'єм цього тетраедра дорівнює нулю). Алгебраїчну форму цієї умови можна знайти в статті Мимобіжні прямі § Перевірка на мимобіжність.

Якщо задані по дві точки на кожній прямій.

Розглянемо перетин двох прямих та на площині, де пряма визначена двома різними точками та , а пряма  — різними точками та [1].

Точку перетину прямих та можна знайти за допомогою визначників

Визначники можна переписати у вигляді:

Зауважимо, що знаходиться точка перетину прямих, а не відрізків між точками, і, тому вона може лежати поза відрізками. Якщо шукати рішення в термінах кривих Безьє першого порядку, то можна перевірити параметри цих кривих 0.0  t  1.0 та 0.0  u  1.0 (t та u — параметри)[2].

Якщо дві прямі є паралельними або збігаються, тоді знаменник дорівнює нулю:

У випадку коли прямі майже паралельні, при обчисленні на комп'ютері можуть виникнути числові складнощі, оскільки знаменник буде занадто близьким до нуля, й розпізнавання такого випадку може потребувати відповідного тесту на «невизначеність» для програми. Більш стійке і загальне рішення може бути отримано при обертанні відрізків таким чином, що один з них стане горизонтальним, а тоді параметричне рішення другої прямої легко отримати. При роз'вязанні необхідно уважно розглянути окремі випадки розташування прямих та відрізків, такі як паралельність чи збіг прямих, можливе накладення відрізків.

Якщо задано рівняння прямих

Координати і точки перетину двох невертикальних прямих можна легко знайти за допомогою наступних підставлень і перетворень та , де і  кутові коефіцієнти прямих, а та  — координати перетину прямих з віссю Oy. У точці перетину прямих (якщо вони перетинаються), обидві координати будуть збігатися, звідки отримуємо рівність:

Ми можемо перетворити це рівняння з метою виділення :

,

тоді:

.

Для знаходження підставляємо у будь-яке з двох рівнянь. Нехай у перше:

.

Звідси отримуємо точку перетину прямих:

Зауважимо, що при дві прямі паралельні. Якщо при цьому , прямі різні та не мають перетинів, в іншому ж випадку прямі збігаються.

Використання однорідних координат

При використанні однорідних координат точка перетину двох явно заданих прямих може бути знайдена досить просто. У 2-вимірному просторі будь-яка точка може бути визначена як проєкція 3-мірної точки, заданої трійкою . Відображення 3-мірних координат у 2-мірні відбувається за формулою . Просто перетворити координати точок 2-вимірному простору в однорідні координати, прирівнявши третю координату одиниці .

Припустимо, що ми хочемо знайти перетин двох нескінченних прямих у 2-вимірному просторі, які задані формулами та . Можемо записати ці дві прямі в координатах прямої як та .

Перетин двох прямих тоді просто задається формулами[3]:

Якщо , то прямі не перетинаються.

Перетин n прямих

У двомірному просторі

У двомірному просторі, перетин в одній точці трьох і більше прямих майже напевно неможливий. Для того, щоб визначити, чи перетинаються прямі в одній точці, і, якщо перетинаються, для пошуку точки перетину, запишемо i-е рівняння прямої (i = 1, …, n), як і скомпонуємо ці рівняння в матричному вигляді

де i-м рядком матриці n × 2 буде , відповідно w — це 2 × 1 вектор (x, y)T, а i-й елемент вектора-стовпця b дорівнює bi (i = 1, …, n). Якщо матриця A має незалежні стовпці, її ранг дорівнює 2. Тоді і лише тоді, коли ранг розширеної матриці [A | b ] дорівнює 2, існує рішення матричного рівняння і, таким чином, існує точка перетину n прямих. Точка перетину, якщо вона існує, знаходиться так:

де є псевдообернена матриця до матриці . Як альтернатива, рішення може бути знайдено шляхом спільного розв'язання двох незалежних рівнянь. Але якщо ранг матриці A дорівнює 1, а ранг розширеної матриці дорівнює 2, розв'язків немає. У разі ж, коли ранг розширеної матриці дорівнює 1, всі прямі збігаються.

У тривимірному просторі

Представлений вище підхід поширюється на тривимірний простір. У тривимірному та n-вимірних просторах навіть дві прямі майже напевно не перетинаються. Пари непаралельних прямих, які не перетинаються, називаються перехресними. Але коли перетин існує, його можна знайти наступним чином. У тривимірному просторі пряма представляється перетином двох площин, кожна з яких задається формулою Тоді множина n прямих може бути представлена у вигляді 2n рівнянь від 3-вимірного координатного вектора w = (x, y, z)T:

де A дорівнює 2n × 3 і b дорівнює 2n × 1. Як і раніше, існує єдина точка перетину тоді і тільки тоді, коли A та розширена матриця [A | b ] мають максимальний ранг, якщо перетин існує, то він задається формулою:

Найближча точка перехресних прямих

У двох чи більше вимірах зазвичай можна знайти точку, яка є найближчою до двох чи більше прямих у сенсі найменших квадратів.

У двох вимірах

У двовимірному просторі спочатку представляють пряму як пару об'єктів: точку на прямій та одиничний вектор нормалі , перпендикулярний до цієї прямої. Тобто, якщо та  — точки на прямій 1, то нехай і

,

який є одиничним вектором на прямій, повернутим на 90 градусів.

Зауважимо, що відстань від точки x до прямої задається формулою:

Отже, квадрат відстані від x до прямої дорівнює:

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

Вираз можна перетворити:

Щоб знайти мінімум, диференціюємо по x і прирівняємо результат до нуля:

тому:

звідки

У тривимірному просторі

Хоча в просторах вище двох нормаль не визначається однозначно, її можна узагальнити на будь-яку розмірність, якщо зауважити, що є просто (симетричною) матрицею усі власні значення якої дорівнюють 1, за винятком нульового власного значення в напрямку вздовж прямої, яка визначає напівнорму на відстані між точкою та іншою точкою, на якій досягається відстань до прямої. У просторі довільної вимірності, якщо це — одиничний вектор уздовж i-ї лінії, тоді

перетворюється на

де E — одинична матриця, а тоді[4]:

Узагальнення

Для того, щоб знайти точку перетину набору прямих, обчислюємо точку з мінімальною відстанню до них. Кожна пряма визначається точкою та вектором одиничної довжини . Квадрат відстані від точки до однієї з прямих обчислюється за теоремою Піфагора:

Де: є проєкція: на -ту пряму. Сума квадратів відстаней до всіх прямих становить:

.

Щоб мінімізувати цей вираз, візьмемо похідну по :

.

В результаті:

,

де  — цє одинична матриця. Це матриця , з розв'язком , є псевдообернена матриця до .

Див. також

Примітки

  1. Weisstein, Eric W. "Line-Line Intersection." From MathWorld. A Wolfram Web Resource. Процитовано 10 січня 2008.
  2. Antonio, Franklin (1992). Chapter IV.6: Faster Line Segment Intersection. У Kirk, David. Graphics Gems III. Academic Press, Inc. с. 199–202. ISBN 0-12-059756-X.
  3. Homogeneous coordinates. robotics.stanford.edu. Процитовано 18 серпня 2015.
  4. Traa, Johannes. Least-Squares Intersection of Lines. Процитовано 30 серпня 2018.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.