線面交點的三種情況:
1. 沒有交點;
2. 有且只有一個交點;
3. 有無數個交點。
在解析幾何中, 一條直線與一個平面的交點可能是空集、一個點或一條直線。在計算機圖形學、運動規劃和碰撞檢測中,經常需要分析相交類型,以及計算出點坐標或線的方程。
代數形式[編輯]
空間中一個平面可以表示為點
的集合
![{\displaystyle (\mathbf {p} -\mathbf {p_{0}} )\cdot \mathbf {n} =0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ab1a56a9f588e49135ad8f9d492bac96606abff0)
其中
是該平面的法線,
是平面上任意一點。(
表示向量
和
的數量積)
而直線可表示為
![{\displaystyle \mathbf {p} =d\mathbf {l} +\mathbf {l_{0}} \quad d\in \mathbb {R} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/aa7a9bb5f51af20bfa204b662155ba534686a82b)
其中
是該直線的方向向量,
是直線上任意一點,
是實數範圍內的純量。將直線方程代入平面方程得
![{\displaystyle (d\mathbf {l} +\mathbf {l_{0}} -\mathbf {p_{0}} )\cdot \mathbf {n} =0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/82fecc02c841cf515d37fdeb15684128c47a40fe)
展開得
![{\displaystyle d\mathbf {l} \cdot \mathbf {n} +(\mathbf {l_{0}} -\mathbf {p_{0}} )\cdot \mathbf {n} =0}](https://wikimedia.org/api/rest_v1/media/math/render/svg/12d6738827960271f00e73b36bafc25d6a8842cc)
解得
![{\displaystyle d={(\mathbf {p_{0}} -\mathbf {l_{0}} )\cdot \mathbf {n} \over \mathbf {l} \cdot \mathbf {n} }.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/74828a6d17ad34b2bbb6f3760bce6b436a88bafb)
若
,則直線與平面平行。此時,如果(
,則該直線在平面內,即直線上所有的點都是交點。否則,直線與平面沒有交點。
若
,則直線與平面有且只有一個交點。解得
,則交點的坐標為
.
參數形式[編輯]
直線與平面的交點
空間中一條直線可以用一個點和一個給定的方向來描述。則一條直線可以表示為如下點的集合
![{\displaystyle \mathbf {l} _{a}+(\mathbf {l} _{b}-\mathbf {l} _{a})t,\quad t\in \mathbb {R} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/aa2fe4342bed11f202523b4d475ebe9ad6d78d31)
其中
和
是直線上兩個不同的點。
相似地,一個平面可以表示為如下點的集合
![{\displaystyle \mathbf {p} _{0}+(\mathbf {p} _{1}-\mathbf {p} _{0})u+(\mathbf {p} _{2}-\mathbf {p} _{0})v,\quad u,v\in \mathbb {R} }](https://wikimedia.org/api/rest_v1/media/math/render/svg/20ab804be5e27254a41b3b086978cf0dee130adf)
其中
,
是平面上不共線的三個點。
直線和平面的交點可以表示為將直線上的點代入平面方程內,則參數方程如下:
![{\displaystyle \mathbf {l} _{a}+(\mathbf {l} _{b}-\mathbf {l} _{a})t=\mathbf {p} _{0}+(\mathbf {p} _{1}-\mathbf {p} _{0})u+(\mathbf {p} _{2}-\mathbf {p} _{0})v}](https://wikimedia.org/api/rest_v1/media/math/render/svg/06daa980b4022cdc5078c6c97fba15e8e48e98ca)
即
![{\displaystyle \mathbf {l} _{a}-\mathbf {p} _{0}=(\mathbf {l} _{a}-\mathbf {l} _{b})t+(\mathbf {p} _{1}-\mathbf {p} _{0})u+(\mathbf {p} _{2}-\mathbf {p} _{0})v,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d73ff000323f540356fe9f0c6b85913bc7f0b805)
用矩陣表示為
![{\displaystyle {\begin{bmatrix}x_{a}-x_{0}\\y_{a}-y_{0}\\z_{a}-z_{0}\end{bmatrix}}={\begin{bmatrix}x_{a}-x_{b}&x_{1}-x_{0}&x_{2}-x_{0}\\y_{a}-y_{b}&y_{1}-y_{0}&y_{2}-y_{0}\\z_{a}-z_{b}&z_{1}-z_{0}&z_{2}-z_{0}\end{bmatrix}}{\begin{bmatrix}t\\u\\v\end{bmatrix}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/6271f6ee119162a31f37a8bd5e02c9688c0b593c)
可得點的坐標為
![{\displaystyle \mathbf {l} _{a}+(\mathbf {l} _{b}-\mathbf {l} _{a})t}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d4ecc40703a54bf49c262c919527a1050e31c8c9)
若直線與平面平行或在平面內,那麼向量
,
及
是線性獨立的,且矩陣為奇異矩陣。
若滿足
,則交點在直線上
與
之間。
若滿足
![{\displaystyle u,v\in [0,1],\;\;\;(u+v)\leq 1,}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2da16f1b4acebb6d0f6a2c33c36fd9a55db49e3d)
則交點位於平面上
,
及
所構成的三角形中。
該問題可用矩陣的形式表示解答:
![{\displaystyle {\begin{bmatrix}t\\u\\v\end{bmatrix}}={\begin{bmatrix}x_{a}-x_{b}&x_{1}-x_{0}&x_{2}-x_{0}\\y_{a}-y_{b}&y_{1}-y_{0}&y_{2}-y_{0}\\z_{a}-z_{b}&z_{1}-z_{0}&z_{2}-z_{0}\end{bmatrix}}^{-1}{\begin{bmatrix}x_{a}-x_{0}\\y_{a}-y_{0}\\z_{a}-z_{0}\end{bmatrix}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2b3f1d7a8306bd027261cd868748116f76c0a5cc)
在計算機圖形學中的光線追蹤算法中,一個面可以被表示為幾個平面的集合。一個面的圖像可以用光線與每個面的交點表達。在基於視覺的三維重建中(計算機視覺的一個子場),深度通常是由「三角測量法」測算的。
外部連結[編輯]