这篇文章致力于解决两个问题。1、求两平面的相交线。2、求直线与平面的交点。
文章开始之前先说明几点。第一,平面由方向量以及平面到原点的距离表示。第二,直线由直线的方向向量以及直线上任意一点来表示。
首先,我们来看下第一个问题。如图:
这里有两平面,其法向量为n1、n2,我们的目的是求交线。 上面说过,直线由点和向量两部分组成。下面我们首先来求得点。假设P点为我们所要求的点。不难发现以P点为终点、原点为起点的向量可表示为:
k1n1+k2n2。也就是说,我们只要求出k1、k2的值,就可求出此向量的值,又知道向量的一点为原点,即可求出P点。
又因为P在平面相交线上,则:n1(k1n1+k2n2)=d1;n2(k1n1+k2n2)=d2。
故,不难求出k1、k2。
k1=(d1(n2n2)-d2(n1n2))/((n1n1)(n2n2)-(n1n2)(n1n2));
k2=(d2(n1n1)-d1(n1n2))/((n2n2)(n1n1)-(n1n2)(n1n2));
将k1、k2代入k1n1+k2n2得到前面提到的向量,也即为我们要求的点。
最后我们求一下直线的向量,这个就很见到了,直接用n1×n2得到的向量就是直线方向向量。
至此,两平面交线已得出。
下面,进入本文的第二部分,求直线与平面的交点。
如图所示,我们现在要求Q点。
我们可列出下面的式子:P(t)=A+tv;解释一下。这个式子通过t的变化,可得出在方向向量v的的方向上的任何点,这个式子也是向量法表示直线的表达式。
若当t=t0时,Q=P(t0)。
Q=A+t0v。
不仅如此,我们还知道以Q为终点,原点为起点的向量也为A+t0v。又Q为平面上的点,所以:
n(A+t0v)=d;(d为平面到原点的距离)
nA+nt0v=d
t0=(d-nA)/nv
将t0带入A+t0v即为求出Q。
至此,我们已经完成平面交线、线面交点的求解。