三維空間中判斷射線與平面是否相交

摘要

本文內容包括:

  • 三維空間中射線與平面的表示方法,
  • 三維空間中判斷射線與平面是否相交。

文末參考鏈接的資料都不錯,但總漏點東西,所以把它們說總結到了一起。


三維空間中射線的表示方法

射線可以用三個量來表示:射線的起始點、射線的方向向量以及射線的長度。
在這裏插入圖片描述
如圖所示的射線的參數方程爲:
P(t)=P0+tu P(t) = P_0^{'} + t \vec{u}
其中,P(t)P(t)爲射線上的點,其所有可能的結果構成了整條射線;P0P_0^{'}是射線的起點,u\vec{u} 爲射線的方向向量,tt爲射線的長度且t[0,)t∈[0,∞)

三維空間中平面的表示方法

平面可以用二個量來表示:平面上任一點,過該點的平面法向量。
在這裏插入圖片描述
如圖所示的平面的參數方程爲:
(P0P)n=0 (P_0 - P)\vec{n} = 0
其中,PP爲變量,其所有可能的結果組成了這個平面;P0P_0爲平面上已知的某一點,n\vec{n}爲平面上過已知點P0P_0的法向量。
公式的物理意義爲:(P0P)(P_0 - P)表示平面上的向量,其與平面法向量n\vec{n}總是垂直的,故它們之間的內積爲0.

三維空間中射線與平面是否相交的判斷方法

射線與平面存在3種情況:

  1. 射線與平面平行。這時候肯定不相交。
  2. 射線與平面不平行。但平面在射線負方向,這時候也不相交。
  3. 射線與平面不平行。且平面在射線正方向,這時候射線與平面相交。

下面分情況討論。
nu=0\vec{n}\vec{u} = 0時,這時候肯定不相交。
nu0\vec{n}\vec{u} \neq 0時,射線與平面不平行,射線所在的直線與平面必定相交於一點,記該點爲P(t)P(t),那麼有:
(P0P(t))n=0 (P_0 - P(t))\vec{n} = 0
帶入射線參數方程P(t)=P0+tuP(t) = P_0^{'} + t \vec{u}, 有
(P0P0+tu)n=0 (P_0 - P_0^{'} + t \vec{u})\vec{n} = 0
解之得
t=(P0P0)nunt = \frac{(P_0^{'} - P_0)\vec{n}}{\vec{u}\vec{n}}注意,這裏是向量點積,所以分子分母的n\vec{n}不能消掉。
t>=0t >= 0時,交點在射線正方向上,所以射線與平面相交;
t<0t < 0時,交點在射線負方向上,所以射線與平面不相交。

相關/參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章