3D 数学(1)-矩阵

简介: 矩阵在 3D 图形中的作用

矩阵是什么?

  • 矩阵是一种描述线性变换的工具
  • 线性变换
    • 定义:是一个从向量空间(V)到自身或另一个向量空间(W)的映射(T)
    • 解释:Va 空间中的点(xa, ya)转换到 Vb 空间中, 结果是(xb, yb),过程就叫线性变换
    • 所用的转换工具——矩阵是
      $$ \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} $$
      $\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$ 可逆,$B$$A$ 的逆矩阵
    • 作用: 撤销变换:
      假设原始向量$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$
相关文章
|
9月前
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
线性代数——(期末突击)矩阵(上)-概念篇(矩阵的定义、矩阵的运算、特殊矩阵、初等变换)
203 7
|
机器学习/深度学习 人工智能
线性代数基础--矩阵
线性代数基础--矩阵
1717 0
|
移动开发
|
机器学习/深度学习 算法 图形学
矩阵和线性代数的应用
矩阵和线性代数是数学中重要的概念,它们被广泛应用于物理、工程、计算机科学、经济学等众多领域。本文将讨论矩阵和线性代数的一些基本概念以及它们在实际应用中的重要性和影响。
412 0
|
算法 C++
【基础算法】矩阵的几种基本运算 & C++实现
从线性代数中我们已知,两个矩阵可以进行加减乘运算,但矩阵之间没有除法运算。
552 0
【基础算法】矩阵的几种基本运算 & C++实现
|
机器学习/深度学习 数据挖掘 PyTorch
PyTorch: 张量的变换、数学运算及线性回归
PyTorch: 张量的变换、数学运算及线性回归
158 0
PyTorch: 张量的变换、数学运算及线性回归
|
机器学习/深度学习
【机器学习知识点】2. 输入一个多项式,返回该多项式的一阶导数多项式
【机器学习知识点】2. 输入一个多项式,返回该多项式的一阶导数多项式
|
机器学习/深度学习
【机器学习中的矩阵求导】(二)矩阵向量求导(定义法)
假设:x xx表示标量;X XX表示m×n维的矩阵;求导的因变量用y yy表示标量;Y YY表示p × q p×qp×q维矩阵
162 0
【机器学习中的矩阵求导】(二)矩阵向量求导(定义法)