变换矩阵与绕轴旋转总结
目录
- 1. 变换矩阵简介
- 2. 平移矩阵
- 3. 缩放矩阵
- 4. 旋转矩阵
- 4.1 绕 Z 轴旋转
- 4.2 绕 X 轴旋转
- 4.3 绕 Y 轴旋转
- 5. 组合变换矩阵
- 6. 结论
1. 变换矩阵简介
在计算机图形学中,变换矩阵用于在三维空间中对物体进行操作,包括:
- 平移(Translation):改变位置。
- 旋转(Rotation):调整方向。
- 缩放(Scaling):改变大小。
变换矩阵通常为 4×4 大小,用于处理三维空间的变换,并可以通过矩阵乘法实现多个变换的组合操作,具有高效性和灵活性。
2. 平移矩阵
平移操作用于移动物体在三维空间中的位置。假设物体的初始位置为 ((x, y, z)),目标平移距离为 ((dx, dy, dz)),则平移矩阵为:
T ( d x , d y , d z ) = ( 1 0 0 d x 0 1 0 d y 0 0 1 d z 0 0 0 1 ) T(dx, dy, dz) = \begin{pmatrix} 1 & 0 & 0 & dx \\ 0 & 1 & 0 & dy \\ 0 & 0 & 1 & dz \\ 0 & 0 & 0 & 1 \end{pmatrix} T(dx,dy,dz)= 100001000010dxdydz1
将顶点坐标与平移矩阵相乘即可计算平移后的新位置。
3. 缩放矩阵
缩放操作调整物体在各个方向上的大小比例。设缩放比例为 (sx, sy, sz),则缩放矩阵为:
S ( s x , s y , s z ) = ( s x 0 0 0 0 s y 0 0 0 0 s z 0 0 0 0 1 ) S(sx, sy, sz) = \begin{pmatrix} sx & 0 & 0 & 0 \\ 0 & sy & 0 & 0 \\ 0 & 0 & sz & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} S(sx,sy,sz)= sx0000sy0000sz00001
顶点与缩放矩阵相乘后,物体会按比例缩放。
4. 旋转矩阵
旋转变换是围绕某一坐标轴对物体进行旋转操作。以下是围绕不同坐标轴的旋转矩阵公式:
4.1 绕 Z 轴旋转
绕 Z 轴旋转的矩阵会影响 (x) 和 (y) 坐标,角度为 (\theta) 时的旋转矩阵为:
R z ( θ ) = ( cos ( θ ) − sin ( θ ) 0 0 sin ( θ ) cos ( θ ) 0 0 0 0 1 0 0 0 0 1 ) R_z(\theta) = \begin{pmatrix} \cos(\theta) & -\sin(\theta) & 0 & 0 \\ \sin(\theta) & \cos(\theta) & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} Rz(θ)= cos(θ)sin(θ)00−sin(θ)cos(θ)0000100001
4.2 绕 X 轴旋转
绕 X 轴旋转的矩阵会影响 (y) 和 (z) 坐标,角度为 (\theta) 时的旋转矩阵为:
R x ( θ ) = ( 1 0 0 0 0 cos ( θ ) − sin ( θ ) 0 0 sin ( θ ) cos ( θ ) 0 0 0 0 1 ) R_x(\theta) = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos(\theta) & -\sin(\theta) & 0 \\ 0 & \sin(\theta) & \cos(\theta) & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} Rx(θ)= 10000cos(θ)sin(θ)00−sin(θ)cos(θ)00001
4.3 绕 Y 轴旋转
绕 Y 轴旋转的矩阵会影响 (x) 和 (z) 坐标,角度为 (\theta) 时的旋转矩阵为:
R y ( θ ) = ( cos ( θ ) 0 sin ( θ ) 0 0 1 0 0 − sin ( θ ) 0 cos ( θ ) 0 0 0 0 1 ) R_y(\theta) = \begin{pmatrix} \cos(\theta) & 0 & \sin(\theta) & 0 \\ 0 & 1 & 0 & 0 \\ -\sin(\theta) & 0 & \cos(\theta) & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} Ry(θ)= cos(θ)0−sin(θ)00100sin(θ)0cos(θ)00001
5. 组合变换矩阵
多个变换可以通过矩阵相乘进行组合,例如:平移、旋转和缩放可以表示为:
M = T ⋅ R ⋅ S M = T \cdot R \cdot S M=T⋅R⋅S
具体过程:
- 平移矩阵 (T(dx, dy, dz)):控制物体的移动位置。
- 旋转矩阵 (R(\theta)):调整物体的方向。
- 缩放矩阵 (S(sx, sy, sz)):修改物体的大小。
通过矩阵的左乘顺序,多个变换可在一次计算中完成。
6. 结论
- 变换矩阵是三维图形操作的基础,能够通过简单的矩阵运算完成复杂的变换。
- 旋转矩阵在绕轴旋转中应用广泛,可灵活调整物体的方向。
- 在现代图形库(如 OpenGL、WebGL)中,矩阵变换是不可或缺的核心工具。
通过熟练掌握变换矩阵,可以更高效地实现各种三维场景中的操作。