Перетин прямої і площини

Матеріал з testwiki
Перейти до навігації Перейти до пошуку
Три можливих випадки перетину прямої і площини:
1. Нема перетину.
2. Перетин в точці.
3. Перетин є прямою.

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

Алгебраїчна форма

У Шаблон:Нп, площину можна задати у вигляді набору точок 𝐩 для яких

(𝐩𝐩𝟎)𝐧=0

де 𝐧 — вектор нормалі, що перпендикулярний площині і 𝐩𝟎 є точкою на площині. (Це представлення 𝐚𝐛 означає скалярний добуток двох векторів 𝐚 і 𝐛.)

Векторне рівняння прямої є наступним:

𝐩=d𝐥+𝐥𝟎d

де 𝐥 це вектор, який вказує напрям прямої, 𝐥𝟎 точка на цій прямій, і d це скаляр в дійсній області чисел. Підставляючи рівняння прямої в рівняння площини, отримуємо

(d𝐥+𝐥𝟎𝐩𝟎)𝐧=0

Розкривши дужки, маємо:

d𝐥𝐧+(𝐥𝟎𝐩𝟎)𝐧=0

І вирішуючи для d

d=(𝐩𝟎𝐥𝟎)𝐧𝐥𝐧.

Якщо 𝐥𝐧=0 пряма і площина є паралельними. Матимемо два випадки: якщо (𝐩𝟎𝐥𝟎)𝐧=0 пряма знаходиться на площині, що означає, що пряма перетинає площину в кожній точці прямої. В іншому випадку, пряма і площина не мають перетину.

Якщо 𝐥𝐧0 існує єдина точка перетину. Значення d можна розрахувати і точку перетину можна визначити наступним чином:

d𝐥+𝐥𝟎.

Параметрична форма

Перетин прямої і площини.

Пряма описується всіма точками на прямій і напрямом від конкретної точки. Таким чином будь-яка довільна точка на прямій може бути задана наступним чином

𝐥a+(𝐥b𝐥a)t,t

де 𝐥a=(xa,ya,za) and 𝐥b=(xb,yb,zb) є двома різними точками на прямій.

Таким же чином будь-яка довільна точка на площині може бути представлена як:

𝐩0+(𝐩1𝐩0)u+(𝐩2𝐩0)v,u,v

де 𝐩k=(xk,yk,zk), k=0,1,2 це три точки на площині, які не є колінеарними.

Точка, в якій пряма перетинає площину, таким чином описується рівнянням в якому точка на прямій дорівнює точці на площині, і задається наступним параметричним рівнянням:

𝐥a+(𝐥b𝐥a)t=𝐩0+(𝐩1𝐩0)u+(𝐩2𝐩0)v

Це можна записати як

𝐥a𝐩0=(𝐥a𝐥b)t+(𝐩1𝐩0)u+(𝐩2𝐩0)v,

що можна представити в матричній формі, як:

[xax0yay0zaz0]=[xaxbx1x0x2x0yayby1y0y2y0zazbz1z0z2z0][tuv]

Точка перетину буде дорівнювати наступному:

𝐥a+(𝐥b𝐥a)t

Якщо лінія паралельна площині тоді вектори 𝐥b𝐥a, 𝐩1𝐩0, і 𝐩2𝐩0 будуть лінійно залежними і матриця буде виродженою. Ця ситуація також виникає, коли пряма знаходиться на площині.

Якщо рішення задовольняє умову t[0,1],, тоді точка перетину знаходиться на прямій між 𝐥a і 𝐥b.

Якщо рішення задовольняє

u,v[0,1],(u+v)1,

тоді точка перетину знаходиться на площині в межах трикутника, що заданий трьома точками 𝐩0, 𝐩1 і 𝐩2.

Ця задача зазвичай вирішується у матричній формі, і за допомогою інверсії отриманої матриці:

[tuv]=[xaxbx1x0x2x0yayby1y0y2y0zazbz1z0z2z0]1[xax0yay0zaz0].

Посилання