射线
定义
在欧几里德几何中,射线的定义如下:
直线上一点和它一旁的部分,由此知射线有两个性质:
1. 有一个端点
2. 一端无线延伸
参数方程
p(t) = p0 + tu
p0 是射线的起点, u是射线的方向向量,t∈[0,∞)
解释一下这个方程,见下图,根据t的取值不同,可得射线上不同的点,所有这些点便构成了整个射线(红色部分)
平面
定义
中文的没找到,英文的:In mathematics, a plane is a flat surface
一个平面可以由平面上的一点p0 和平面的法向量n来确定(过一点,有且只有一个平面与已知直线垂直),如下图
参数方程
平面是由无穷多个点组成的,对于过点p0 且法向量为n的平面来说,其上任意一点p满足如下方程
n•(p - p0) = 0
解释一下, 符号“•”表示dot product(点积),因n与平面垂直,所以n与平面内任意直线垂直,而p - p0则是平面内的一个向量,所以n与p - p0垂直,又因为互相垂直的向量其点积为0,所以就有了上面的方程。见下图
向量的点积:对于任意两个向量V1(x1, y1, z1)与V2(x2, y2, z2),V1•V2 = x1x2 + y1y2 + z1z2
切入正题,射线与平面相交。
射线若于平面相交,则交点一定在平面上,设交点为p,那么p一定同时满足射线的方程和平面的方程,于是
p(t) = p0 + tu //这里的p0是射线的起点
n•(p - p0) = 0 //这里的p0是平面所过的点
注意,这两个方程中的p0是不同的,为区别,将平面方程中的p0改为p1,然后将射线方程代入平面方程
n•(p0 + tu – p1) = 0 整理后得到
t = (n•p1 – n•p0) / n•u (注意:n不可约去)
由向量点乘分配律得:
t = n•(p1-p0)/n•u
若t∈[0,∞),则射线与平面相交,且交点为p0 + tu,将上面的t带入射线方程即可否则不相交。