前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >3D 数学(1)-矩阵

3D 数学(1)-矩阵

原创
作者头像
用户4412631
修改2025-02-13 16:21:57
修改2025-02-13 16:21:57
580
举报
文章被收录于专栏:游戏开发游戏开发

矩阵是什么?

  • 矩阵是一种描述线性变换的工具
  • 线性变换
    • 定义:是一个从向量空间(V)到自身或另一个向量空间(W)的映射(T)
    • 解释:Va 空间中的点(xa, ya)转换到 Vb 空间中, 结果是(xb, yb),过程就叫线性变换
    • 所用的转换工具——矩阵是 \begin{bmatrix}A&M&0\\B&N&0\\C&D&1\end{bmatrix} 转换过程是: \begin{bmatrix}xa&ya&1\end{bmatrix}\times\begin{bmatrix}A&M&0\\B&N&0\\C&D&1\end{bmatrix}\\=\begin{bmatrix}Axa+Bya+C&Mxa+Nya+D&1\end{bmatrix}\\=\begin{bmatrix}xb&yb&1\end{bmatrix}
  • 为什么是矩阵
    • 统一表示多种变换
      • 多种变换整合:通过矩阵运算规则,可将多个变换矩阵组合成一个复合矩阵,一次性完成多种变换(如:平移+缩放)
      • 便于操作与管理:使用矩阵表示变换,使不同类型变换在形式上统一,便于在程序中进行管理和操作
    • 易于实现复合变换
      • 矩阵乘法特性:如要对图形依次进行旋转 R、缩放S 和平移 T,可先将这些变换表示为矩阵 R、S、T,通过计算复合矩阵M = T \times S \times R (注意顺序),然后用矩阵 M 作用于图形的顶点坐标,就能一步完成所有变换
    • 与线性代数理论紧密结合
      • 理论支持:计算机图形学基于线性代数理论,矩阵是线性代数的核心工具
      • 高效算法实现:线性代数为矩阵运算提供了丰富且成熟的算法,如矩阵求逆、行列式计算等
    • 硬件加速支持
      • 图形硬件优化:现代GPU对矩阵运算有专门优化
      • 提高渲染效率:将空间变换用矩阵表示,利用 GPU 硬件加速,可在短时间内处理大量图形数据,实现复杂场景的实时渲染

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

  • 不满足交换率
    • M_S = \begin{bmatrix}3&0&0\\0&3&0\\0&0&1\end{bmatrix} M_T = \begin{bmatrix}1&0&0\\0&1&0\\2&2&1\end{bmatrix}
    • 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}
    • \therefore M_{ST} \neq M_{TS}

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

  • 平移矩阵 T = \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}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 = \begin{bmatrix}s_x&0&0&0\\0&s_y&0&0\\0&0&s_z&0\\0&0&0&1\end{bmatrix} 变换计算过程为: 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}
  • 旋转(欧拉角)矩阵

单位矩阵、逆矩阵

  • 单位矩阵:是一个方阵,即行数和列数相等。对于n 阶单位矩阵,记为I_n ,其主对角线(从左上角到右下角的对角线)上的元素都为1,其余元素均为0。如:
    • 性质:
      • 乘法特性:单位矩阵在矩阵乘法中类似于实数乘法中的数字。
      • 可逆性:单位矩阵是可逆矩阵,且其逆矩阵就是它本身
  • 逆矩阵:若存在矩阵B ,使得AB=BA=I ,则A 可逆,BA 的逆矩阵
    • 作用: 撤销变换: 假设原始向量v ,变换矩阵为A ,经过变换后得到向量v' ,关系为 v' = Av 若要从v' 恢复到原始向量v ,在等式两边同时左乘A 的逆矩阵A^{-1} 即可: A^{-1}v' = A^{-1}(Av) = (A^{-1}A)v = Iv = v 即:A^{-1}v' = v

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 矩阵是什么?
  • 向量与矩阵,矩阵与矩阵的乘法
  • 平移、缩放、旋转(三维空间)
  • 单位矩阵、逆矩阵
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档