编程笔记

lifelong learning & practice makes perfect

线性代数-三维矩阵运算

线性变换

常见的线性变换平移、缩放、旋转、投影

三维空间的坐标表示

通常用4x4矩阵表示3D空间中的变换,如平移、旋转、缩放等。

  • 旋转变换:矩阵的前三列表示三个坐标轴的旋转变换,每列都是一个长度为3的向量。例如,第一列表示绕X轴旋转的变换,第二列表示绕Y轴旋转的变换,第三列表示绕Z轴旋转的变换。
  • 平移变换:矩阵的第四列表示平移变换,它是一个长度为3的向量,表示在每个坐标轴上的平移量。
  • 透视变换:矩阵的第四行用于透视变换,通常表示投影平面上的坐标系。
  • 缩放变换:矩阵的对角线元素表示缩放变换的比例因子,例如,x轴缩放因子为矩阵的第一个元素,y轴缩放因子为第二个元素,z轴缩放因子为第三个元素。

平移

对于一个3D空间中的点A(x, y, z),我们可以使用一个4x1列向量表示它,如下所示:

1
2
3
4
x
y
z
1

其中最后一个元素为1,这是为了让矩阵乘法能够正确地进行。
要对这个点进行平移变换,我们可以创建一个如下所示的4x4矩阵:

1
2
3
4
1 0 0 tx
0 1 0 ty
0 0 1 tz
0 0 0 1

其中(tx, ty, tz)表示平移向量。然后,我们可以将该点与矩阵相乘来进行变换,如下所示:

1
2
3
4
x' = x + tx
y' = y + ty
z' = z + tz
1' = 1

缩放

缩放矩阵

1
2
3
4
sx  0   0   0
0 sy 0 0
0 0 sz 0
0 0 0 1

缩放后点A为A’

1
2
3
4
x' = x*sx
y' = y*sy
z' = z*sz
1' = 1

旋转

透视

参考

欢迎关注我的其它发布渠道