跳过正文
  1. Posts/

GAMES101学习笔记03:向量与线性代数变换

·288 字·2 分钟

变换的应用
#

  • 旋转
  • 缩放
  • 位置移动
  • 光栅化

二维变换
#

缩放 (Scale Matrix)
#

2D变换_缩放

缩放变换是线性代数和计算机图形学中最基础的几何变换之一,用于将图形按比例放大或缩小.

  • 数学表达 对于平面上任意一点 \((x, y)\),经过缩放因子为 \(s\) 的变换后,新坐标 \((x', y')\) 为:
$$ \begin{cases} x' = s \cdot x \\ y' = s \cdot y \end{cases} $$
  • 当 \(s > 1\) 时,图形放大。

  • 当 \(0 < s < 1\) 时,图形缩小(如图中 \(s=0.5\))。

  • 当 \(s = 1\) 时,图形大小不变(恒等变换)。

  • 矩阵形式

$$ \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} $$

翻转 (Reflection Matrix)
#

2D 翻转(反射)是把图形沿某条直线(轴)做镜像,得到对称图形。

常见:沿 x 轴翻转、沿 y 轴翻转、沿原点

2D变换_翻转

$$ \begin{cases} x' = -x \\ y' = y \end{cases} $$
  • 矩阵形式

    $$ \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} -1 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} $$
  • 沿 x 轴:y 变号

  • 沿 y 轴:x 变号

  • 沿原点:x、y 都变号

  • 矩阵都是对角矩阵,对角线上是 ±1

剪切 (Shear Matrix)
#

剪切变换(shear transformation)是空间线性变换之一,是仿射变换的一种原始变换。它指的是类似于四边形不稳定性那种性质,方形变平行四边形,任意一边都可以被拉长的过程。

2D变换_剪切变换
$$ \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} 1 & a \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} $$

旋转 (Rotation Matrix)
#

2D变换_旋转
$$ R_\theta = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix} $$
二维绕原点旋转矩阵推导

几何原理

取坐标系单位基向量,旋转后坐标直接构成矩阵列:

  • 基向量 \(\boldsymbol{i}=(1,0)\) 逆时针转\(\theta\) → \((\cos\theta,\sin\theta)\)
  • 基向量 \(\boldsymbol{j}=(0,1)\) 逆时针转\(\theta\) → \((-\sin\theta,\cos\theta)\)

关键记忆点

  1. 第一列:x轴基向量旋转结果
  2. 第二列:y轴基向量旋转结果
  3. 负号固定在右上 \(-\sin\theta\) → 仅适用于逆时针*
  4. 顺时针旋转θ,负号移到左下: $$ \boldsymbol{R}_{-\theta}=\begin{bmatrix}\cos\theta&\sin\theta\\-\sin\theta&\cos\theta\end{bmatrix} $$

线性变换 = 矩阵(Linear transforms = Matrices)
#

核心结论
#

所有二维线性变换,都可以用一个同维度的方阵表示,这是线性代数、计算机图形学的底层核心。

线性变换的代数形式
#

二维平面内任意点 \((x,y)\)经过线性变换后得到新坐标 \((x',y')\),满足一次齐次线性关系:

$$ \begin{cases} x' = ax + by \\ y' = cx + dy \end{cases} $$

矩阵形式(列向量标准式)
#

将线性方程组改写为矩阵 × 列向量的形式,是图形学、线性代数的通用写法:

$$ \begin{bmatrix} x' \\ y' \end{bmatrix} = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} $$

向量简化形式
#

用向量符号统一表达,形式更简洁:

$$ \mathbf{x}' = \mathbf{M}\mathbf{x} $$
  • \(\mathbf{x}\):原坐标列向量 - \(\mathbf{x}'\):变换后坐标列向量
  • \(\mathbf{M}\):线性变换矩阵(2×2方阵)

核心意义
#

  1. 一切线性变换(旋转、缩放、翻转、剪切)本质都是一个矩阵
  2. 变换的组合 = 矩阵的乘法
  3. 变换的逆操作 = 矩阵的逆
  4. 仅包含x、y一次项,无常数项、无高次项,才是线性变换

记忆要点
#

线性变换无平移、无常数偏移,仅由坐标的线性组合构成,可完全由方阵描述。

齐次坐标
#

Xenolies
作者
Xenolies
Keep On Keeping On