3D 数学(1)-矩阵

160 阅读2分钟

矩阵是什么?

  • 矩阵是一种描述线性变换的工具

线性变换

  • 定义:是一个从向量空间(V)到自身或另一个向量空间(W)的映射(T)
  • 解释:Va 空间中的点(xa, ya)转换到 Vb 空间中, 结果是(xb, yb),过程就叫线性变换
  • 所用的转换工具——矩阵

[AM0BN0CD1]\begin{bmatrix}A&M&0\\B&N&0\\C&D&1\end{bmatrix}

转换过程是:

[xaya1][AM0BN0CD1]\begin{bmatrix}xa&ya&1\end{bmatrix}\begin{bmatrix}A&M&0\\B&N&0\\C&D&1\end{bmatrix} =[Axa+Bya+CMxa+Nya+D1]\\=\begin{bmatrix}Axa+Bya+C&Mxa+Nya+D&1\end{bmatrix} =[xbyb1]\\=\begin{bmatrix}xb&yb&1\end{bmatrix}

为什么是矩阵

  • 统一表示多种变换
    • 多种变换整合:通过矩阵运算规则,可将多个变换矩阵组合成一个复合矩阵,一次性完成多种变换(如:平移+缩放)
    • 便于操作与管理:使用矩阵表示变换,使不同类型变换在形式上统一,便于在程序中进行管理和操作
  • 易于实现复合变换
    • 矩阵乘法特性:如要对图形依次进行旋转 R、缩放S 和平移 T,可先将这些变换表示为矩阵 R、S、T,通过计算复合矩阵 M=T×S×RM = T \times S \times R (注意顺序),然后用矩阵 M 作用于图形的顶点坐标,就能一步完成所有变换

向量与矩阵,矩阵与矩阵的乘法

  • 不满足交换率

S=[300030001]T=[100010221]S = \begin{bmatrix}3&0&0\\0&3&0\\0&0&1\end{bmatrix} T = \begin{bmatrix}1&0&0\\0&1&0\\2&2&1\end{bmatrix}

MST=[300030221]MTS=[300030661]M_{ST} = \begin{bmatrix}3&0&0\\0&3&0\\2&2&1\end{bmatrix} M_{TS} = \begin{bmatrix}3&0&0\\0&3&0\\6&6&1\end{bmatrix}

MSTMTS\therefore M_{ST} \neq M_{TS}

平移、缩放、旋转(三维空间)

平移矩阵

T=[100tx010ty001tz0001]T = \begin{bmatrix}1&0&0&t_x\\0&1&0&t_y\\0&0&1&t_z\\0&0&0&1\end{bmatrix}

变换计算过程为(变换矩阵左乘向量):

[100tx010ty001tz0001][xyz1]=[x+txy+tyz+tz1]\begin{bmatrix}1&0&0&t_x\\0&1&0&t_y\\0&0&1&t_z\\0&0&0&1\end{bmatrix} \begin{bmatrix}x\\y\\z\\1\end{bmatrix} = \begin{bmatrix}x+t_x\\y+t_y\\z+t_z\\1\end{bmatrix}

缩放矩阵

S=[sx0000sy0000sz00001]S = \begin{bmatrix}s_x&0&0&0\\0&s_y&0&0\\0&0&s_z&0\\0&0&0&1\end{bmatrix}

变换计算过程为:

S=[sx0000sy0000sz00001][xyz1]=[sxxsyyszz1]S = \begin{bmatrix}s_x&0&0&0\\0&s_y&0&0\\0&0&s_z&0\\0&0&0&1\end{bmatrix} \begin{bmatrix}x\\y\\z\\1\end{bmatrix} = \begin{bmatrix}s_xx\\s_yy\\s_zz\\1\end{bmatrix}

旋转(欧拉角)矩阵

请在此添加图片描述

单位矩阵、逆矩阵

单位矩阵

  • 是一个方阵,即行数和列数相等。对于nn 阶单位矩阵,记为InI_n ,其主对角线(从左上角到右下角的对角线)上的元素都为1,其余元素均为0。如:
    替代文字
    • 性质:
      • 乘法特性:单位矩阵在矩阵乘法中类似于实数乘法中的数字。
      • 可逆性:单位矩阵是可逆矩阵,且其逆矩阵就是它本身

逆矩阵

  • 若存在矩阵BB ,使得AB=BA=IAB=BA=I ,则AA 可逆,BBAA 的逆矩阵

    • 作用——撤销变换:

      假设原始向量vv ,变换矩阵为AA ,经过变换后得到向量vv' ,关系为 v=Avv' = Av。若要从vv' 恢复到原始向量vv,在等式两边同时左乘 AA 的逆矩阵A1A^{-1} 即可:

      A1v=A1(Av)=(A1A)v=Iv=vA^{-1}v' = A^{-1}(Av) = (A^{-1}A)v = Iv = v

      即:A1v=vA^{-1}v' = v