法線は必ずしもポイントのように変換されるとは限らず、距離は原点への垂直d'= d + n.v
距離であるため、注意が必要です。したがって、 を計算する必要があります。移動と回転だけを行っている場合は、法線を回転させて新しい垂直距離を計算できます。ただし、軸を別の方法でスケーリングしたり、一般的な射影変換を行ったりする場合は、別の方法で処理する必要があります。
すべてに対して機能する方法は、同次座標を使用することです。そのため、すべての変換は 4x4 行列であり、点と平面の両方が 4-ベクトルです。
point p=(x,y,z) -> homogeneous (x,y,z,1), equiv. to (x*W, y*W, z*W, W)
plane q=[n=(a,b,c), d] -> homogeneous [a,b,c,d], equiv. to [a*K, b*K, c*K, d*K)
-> point p is on plane q iff: p.q=0 (using homogeneous coords, as above)
一般に、すべての変換行列を 1 つの 4x4 行列 T に乗算し、その行列をすべてのポイントで使用して、最終的な変換位置を決定します。秘訣は、T の逆転置を使用して平面座標を変換する必要があることです。以下から、これにより点と平面の間の入射が維持されることがわかります。
point p' = T p
plane q' = (T^-1)^t q
-> point p' is on plane q' when: p'.q'=0
then, note: p'.q' = p^t T^t (T^-1)^t q = p^t q = p.q
so: p'.q'=0 whenever p.q=0