线面交点的三种情况:
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)
在计算机图形学中的光线追踪算法中,一个面可以被表示为几个平面的集合。一个面的图像可以用光线与每个面的交点表达。在基于视觉的三维重建中(计算机视觉的一个子场),深度通常是由“三角测量法”测算的。
外部链接[编辑]