在图形学领域中,Transform
矩阵(变换矩阵)是一种表示图形对象在二维或三维空间中的位置、方向和大小变化的数学工具。它们用于执行各种图形变换,如平移、旋转、缩放。Transform
矩阵通常表示为一个二维或三维矩阵,具体形式取决于空间的维度。
3x3
的矩阵表示变换,其中最后一行通常是[0, 0, 1]
,因为二维变换不影响z
轴。这个矩阵可以表示平移、旋转、缩放和剪切。 [ 1 0 tx ]
[ 0 1 ty ]
[ 0 0 1 ]
其中tx
和ty
是平移的水平和垂直距离。
4x4
的矩阵表示变换,其中最后一列通常是[0, 0, 0, 1]
。这种矩阵可以表示平移、旋转、缩放以及更复杂的变换。 [ 1 0 0 tx ]
[ 0 1 0 ty ]
[ 0 0 1 tz ]
[ 0 0 0 1 ]
其中tx
、ty
和tz
是平移的x
、y
和z
轴距离。
不管是二维变换矩阵还是三维变换矩阵,它的最后一行都是齐次坐标,通常是[0, ... , 1]
用于处理齐次坐标,使得可以用矩阵乘法来同时处理旋转和平移。
给定的初始 Transform 矩阵如下:
[ 1 0 0 tx ]
[ 0 1 0 ty ]
[ 0 0 1 tz ]
[ 0 0 0 1 ]
希望在 x 轴增加 2 个单位,y 轴增加 1 个单位,z 轴减小 3 个单位。
[ 1 0 0 tx + 2 ]
[ 0 1 0 ty + 1 ]
[ 0 0 1 tz - 3 ]
[ 0 0 0 1 ]
这个新的矩阵表示了对原始物体进行了所需的平移操作。
```css
[ cos(θ) -sin(θ) ]
[ sin(θ) cos(θ) ]
[ 1 0 0 0 ]
[ 0 cos(θ) -sin(θ) 0 ]
[ 0 sin(θ) cos(θ) 0 ]
[ 0 0 0 1 ]
[ cos(θ) -sin(θ) 0 0 ]
[ sin(θ) cos(θ) 0 0 ]
[ 0 0 1 0 ]
[ 0 0 0 1 ]
[ cos(θ) 0 sin(θ) 0 ]
[ 0 1 0 0 ]
[-sin(θ) 0 cos(θ) 0 ]
[ 0 0 0 1 ]
原始的Transform
矩阵T
与旋转矩阵R
相乘,得到新的Transform
矩阵 T'
T' = T * R
[ sx 0 0 0 ]
[ 0 sy 0 0 ]
[ 0 0 sz 0 ]
[ 0 0 0 1 ]
原始的Transform
矩阵T
与缩放矩阵S
相乘,得到新的Transform
矩阵 T'
T' = T * S