来自deepseek对于图形学和图像学方面的回复:
在计算机图形学中,矩阵在图形建模和变换中起着关键作用。以下是几种重要的矩阵及其用途:
1. 平移矩阵(Translation Matrix)
用于将物体从一个位置移动到另一个位置。
T = \begin{bmatrix}
1 & 0 & 0 & t_x \\
0 & 1 & 0 & t_y \\
0 & 0 & 1 & t_z \\
0 & 0 & 0 & 1
\end{bmatrix}
2. 缩放矩阵(Scaling Matrix)
用于改变物体的大小。
S = \begin{bmatrix}
s_x & 0 & 0 & 0 \\
0 & s_y & 0 & 0 \\
0 & 0 & s_z & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}
3. 旋转矩阵(Rotation Matrix)
用于绕某个轴旋转物体。
绕X轴旋转:
R_x = \begin{bmatrix}
1 & 0 & 0 & 0 \\
0 & \cos \theta & -\sin \theta & 0 \\
0 & \sin \theta & \cos \theta & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}
绕Y轴旋转:
R_y = \begin{bmatrix}
\cos \theta & 0 & \sin \theta & 0 \\
0 & 1 & 0 & 0 \\
-\sin \theta & 0 & \cos \theta & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}
绕Z轴旋转:
R_z = \begin{bmatrix}
\cos \theta & -\sin \theta & 0 & 0 \\
\sin \theta & \cos \theta & 0 & 0 \\
0 & 0 & 1 & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}
4. 投影矩阵(Projection Matrix)
用于将3D场景投影到2D平面上。
正交投影:
P_{\text{ortho}} = \begin{bmatrix}
\frac{2}{r-l} & 0 & 0 & -\frac{r+l}{r-l} \\
0 & \frac{2}{t-b} & 0 & -\frac{t+b}{t-b} \\
0 & 0 & \frac{-2}{f-n} & -\frac{f+n}{f-n} \\
0 & 0 & 0 & 1
\end{bmatrix}
透视投影:
P_{\text{persp}} = \begin{bmatrix}
\frac{2n}{r-l} & 0 & \frac{r+l}{r-l} & 0 \\
0 & \frac{2n}{t-b} & \frac{t+b}{t-b} & 0 \\
0 & 0 & \frac{-(f+n)}{f-n} & \frac{-2fn}{f-n} \\
0 & 0 & -1 & 0
\end{bmatrix}
5. 视图矩阵(View Matrix)
用于将世界坐标系中的物体转换到相机坐标系。
V = \begin{bmatrix}
r_x & u_x & -d_x & 0 \\
r_y & u_y & -d_y & 0 \\
r_z & u_z & -d_z & 0 \\
0 & 0 & 0 & 1
\end{bmatrix}
6. 模型矩阵(Model Matrix)
用于将局部坐标系中的物体转换到世界坐标系。
M = T \times R \times S
7. 法线矩阵(Normal Matrix)
用于变换法线向量,确保其与变换后的表面垂直。
N = (M^{-1})^T
这些矩阵通过组合使用,可以实现复杂的图形变换和渲染效果。