计算两个面的交线
空间中两个平面要么相交要么平行,相交平面得到的是一条直线。
根据之前的博文有讲述,空间中不共线三点确定一个平面。那么已知两个平面,且两平面相交,应该如何去计算两平面之间的交线呢?
思路分析:如果两平面相交,获得一条直线,那么该直线就同时属于两个平面。那么该直线会同时垂直于两个平面的法线。那么两个平面的法向量的外积,就可以计算出交线的方向。这时候还需要计算交线上一点才能表示该直线。要计算交线上一点,就需要构造另一条直线,使得该直线在两个已知平面中的一个平面内,并且与另一个平面有交点,该交点就是交线上的点。而目前能够得到的已知量就是表示平面的六个点(这六个点可能会有相等的点,但是如果能表示平面,不会六个点都相等),交线方向向量,两个平面的法向量。可以取六个点中的一个点,作平行于交线的直线,结合该点所在平面的法向量得到第二条直线,根据向量外积,计算得到一个垂直于交线的向量,结合该点和该向量可以得到一条垂直于交线的直线,并且该直线交于另一个平面,求出该直线与平面的交点,该交点就是交线上的点,交线上的点和交线方向向量就可以确定交线了。
推导过程:
假设两平面 P1,P2 P 1 , P 2 相交于直线 l0 l 0
平面法向量分别为 n1→,n2→ n 1 → , n 2 →
则有 l0⊥n1→,l0⊥n2→ l 0 ⊥ n 1 → , l 0 ⊥ n 2 →
由 P1 P 1 中已知一点P出发向 l0 l 0 作垂线得直线 l1 l 1
则 l1⊥l0→,l1⊥n1→ l 1 ⊥ l 0 → , l 1 ⊥ n 1 →
则 l1 l 1 的方向向量 Dirl1→=Dirl0→×n1→ D i r l 1 → = D i r l 0 → × n 1 →
则直线 l1=P+tDirl1→ l 1 = P + t D i r l 1 →
计算直线l_1与平面P_2的交点R
直线 l0=R+tDirl0→ l 0 = R + t D i r l 0 →