把一个点P变换到平面Pl上离它距离最近的一点P'的变换,即是正交平行投影变换,
也可以看作过这点P引一条与平面法线平行的直线,它与平面的交点既是P'
而斜交平行投影变换则是过点P引一条给点方向向量的直线,它与平面的交点为P'
这样把通过P找到了对应的P',用变换矩阵来描述这种变换可以表示为P'=P*Q;(Q为变换矩阵)
现在来求Q:
→ → →
设直线P=P0+N*k (k为实数,N为直线方向向量)
→
平面P*Pl↓=0 (Pl为平面一般式Ax+By+Cz+D=0 中四个系数构成的向量,用向量来表达就是
( A
(x,y,z,1)* B =0 等式左边也可以看作1*4的矩阵乘以4*1的矩阵 )
C
D)
直线平面求交点:
带直线方程入平面方程得:
→ → → →
( P0+N*k )*Pl↓=0 k= -( P0 * Pl↓ )/( N * Pl↓ )
再带k入原直线方程
→ → → → →
P=P0+N* -( P0 * Pl↓ )/( N * Pl↓ )
→ → → →
P=P0*[1-(Pl↓ * N )/( N * Pl↓ )]
→ →
所以我们要得变换矩阵Q=E-(Pl↓ * N )/( N * Pl↓ )
(A
对于正交投影变换N=(A,B,C,0) Pl= B
C
D)
可以求得Q={
B2+C2 , -B*A , -C*A , 0 ,
-A*B , A2+C2 , -C*B , 0 ,
-A*C , -B*C , A2+B2 , 0 ,
-A*D , -B*D , -C*D , A2+B2+C2 ,
}
2009-01-29 23:37:26