1. 齐次坐标
- 点:
在三维空间中,点 (x,y,z) 的齐次坐标表示为 (sx,sy,sz,s),其中 s 是非零的缩放系数。通过将点转为齐次坐标,几何变换可以通过矩阵乘法统一处理。 - 向量:
向量 (x,y,z) 的齐次坐标为 (x,y,z,0)。由于向量表示方向而不携带位置信息,最后一位设置为 0,这也确保了向量在几何变换中不会受到平移的影响。
2. 变换矩阵
变换矩阵是一个用来表示几何变换(例如平移、旋转、缩放等)的矩阵。变换矩阵的逆矩阵能够抵消变换矩阵带来的影响,恢复对象到其原始状态。
在进行多个变换时,变换矩阵的顺序非常重要,需遵循 SRT 原则:即先进行缩放(S),然后进行旋转(R),最后进行平移(T)。变换的顺序不同会导致结果的显著变化。
2.1 平移矩阵
T=⎣⎢⎢⎢⎡100tx010ty001tz0001⎦⎥⎥⎥⎤
P×T=[pxpypz1]×⎣⎢⎢⎢⎡100tx010ty001tz0001⎦⎥⎥⎥⎤=[px+txpy+typz+tz1]
2.2 旋转矩阵
Rx(θ)=⎣⎢⎢⎢⎡10000cos(θ)−sin(θ)00sin(θ)cos(θ)00001⎦⎥⎥⎥⎤
Ry(θ)=⎣⎢⎢⎢⎡cos(θ)0sin(θ)00100−sin(θ)0cos(θ)00001⎦⎥⎥⎥⎤
Rz(θ)=⎣⎢⎢⎢⎡cos(θ)−sin(θ)00sin(θ)cos(θ)0000100001⎦⎥⎥⎥⎤
旋转矩阵是正交的,旋转矩阵的逆矩阵是其转置矩阵。
2.3 缩放矩阵
S=⎣⎢⎢⎢⎡sx0000sy0000sz00001⎦⎥⎥⎥⎤
当 sx=sy=sz 时为均匀缩放,此缩放不会改变对象的形状。