采用点向式表示直线方程,已知直线上任意一点 ( x 0 , y 0 , z 0 ) (x_0, y_0, z_0) (x0,y0,z0)以及直线的方向向量 ( v x , v y , v z ) (v_x, v_y, v_z) (vx,vy,vz),则直线方程可以表示为:
x − x 0 v x = y − y 0 v y = z − z 0 v z \frac{x-x_0}{v_x}=\frac{y-y_0}{v_y}=\frac{z-z_0}{v_z} vxx−x0=vyy−y0=vzz−z0
现假设已知空间中两条直线 l a l_a la, l b l_b lb上两点分别为 ( x a , y a , z a ) (x_a, y_a, z_a) (xa,ya,za), ( x b , y b , z b ) (x_b, y_b, z_b) (xb,yb,zb), 两条直线的方向向量分别为
v a → = ( v x a , v y a , v z a ) \overrightarrow{v^a}=(v^a_x, v^a_y, v^a_z) va=(vxa,vya,vza) v b → = ( v x b , v y b , v z b ) \overrightarrow{v^b}=(v^b_x, v^b_y, v^b_z) vb=(vxb,vyb,vzb)
通过求解直线 l a l_a la, l b l_b lb的方向向量的叉积,得到公垂线方向向量:
n → = v a → × v b → = ( n x , n y , n z ) \overrightarrow{n}=\overrightarrow{v^a}\times\overrightarrow{v^b}=(n_x, n_y, n_z) n=va×vb=(nx,ny,nz)
注:有关向量叉积的计算公式,可参考叉积的定义。
设公垂线与直线 l a l_a la, l b l_b lb的交点分别为 A = ( a x , a y , a z ) A=(a_x, a_y, a_z) A=(ax,ay,az), B = ( b x , b y , b z ) B=(b_x, b_y, b_z) B=(bx,by,bz), 可将A, B两点分别代入直线方程:
直线 l a l_a la: a x − x a v x a = a y − y a v y a = a z − z a v z a (1) \frac{a_x - x_a}{v^a_x}=\frac{a_y - y_a}{v^a_y}=\frac{a_z - z_a}{v^a_z}\tag{1} vxaax−xa=vyaay−ya=vzaaz−za(1)
直线 l b l_b lb: b x − x b v x b = b y − y b v y b = b z − z b v z b (2) \frac{b_x - x_b}{v^b_x}=\frac{b_y - y_b}{v^b_y}=\frac{b_z - z_b}{v^b_z}\tag{2} vxbbx−xb=vybby−yb=vzbbz−zb(2)
另外,由于A,B两点均在公垂线上,因此,向量 A B → \overrightarrow{AB} AB与公垂线方向向量平行,可得:
a x − b x n x = a y − b y n y = a z − b z n z (3) \frac{a_x - b_x}{n_x}=\frac{a_y - b_y}{n_y}=\frac{a_z - b_z}{n_z}\tag{3} nxax−bx=nya