【GAMES101-现代计算机图形学课程笔记】Lecture 02 Review of Linear Algebra

1. Vector (向量 / 矢量)

1.1 基础回顾

  • 向量表示方式为 (vec{a}) 或者 (oldsymbol{a})
  • 向量长度 (|vec{a}|)
  • 单位向量表示方式为:(hat{a}=vec{a} /|vec{a}|)
  • 向量表示采用笛卡尔坐标(Cartesian Coordinates),例如

(mathbf{A}=left(egin{array}{l}x \ yend{array} ight) quad mathbf{A}^{T}=(x, y) quad|mathbf{A}|=sqrt{x^{2}+y^{2}})

注意,一般默认向量为列向量。

1.2 向量相乘

1.2.1 点乘

  • 定义:

(vec{a} cdot vec{b}=|vec{a}||vec{b}| cos heta)
(cos heta=frac{vec{a} cdot vec{b}}{|vec{a}||vec{b}|})

  • 性质

(vec{a} cdot vec{b}=vec{b} cdot vec{a})
(vec{a} cdot(vec{b}+vec{c})=vec{a} cdot vec{b}+vec{a} cdot vec{c})
((k vec{a}) cdot vec{b}=vec{a} cdot(k vec{b})=k(vec{a} cdot vec{b}))

  • 计算示例

(vec{a} cdot vec{b}=left(egin{array}{l}x_{a} \ y_{a}end{array} ight) cdotleft(egin{array}{l}x_{b} \ y_{b}end{array} ight)=x_{a} x_{b}+y_{a} y_{b})

  • 用途

1) 计算投影

enter description here

2) 判断两个向量是否同向

点乘结果>0就表示基本同向,=1表示方向完全一致。

1.2.2 叉乘

  • 定义

(a imes b=-b imes a)
(|a imes b|=|a||b| sin phi)

使用右手法则。


叉乘不满足交换律。

  • 用途

1)生成坐标轴
(vec{x} imes vec{y}=+vec{z})
(vec{y} imes vec{x}=-vec{z})
(vec{y} imes vec{z}=+vec{x})
(vec{z} imes vec{y}=-vec{x})
(vec{z} imes vec{x}=+vec{y})
(vec{x} imes vec{z}=-vec{y})

2)判定左 / 右 或者 内 / 外

比如一直坐标系由XYZ组成,然后现在想判断向量b是在a的左边还是右边,之需要求出(vec{x} imes vec{y})可以知道与(vec{z})同向,所以b在a左边。

(vec{AP})始终在三条有向边(vec{AB},vec{BC},vec{CA})的同一侧(左侧),所以p点在三角形内侧。

注意:三角形三条边的向量必须首尾相连,所以如果我们把下面三角形的三条边向量换一个方向,但是因为最后可以算出AP都在三条边的右侧,即同一侧,所以P点在三角形内侧。

2. Matrix (矩阵)

矩阵在图形学里常用于表示变换(Transformations),比如 translation,rotation,shear,scale等。

矩阵相乘运算

(left(egin{array}{ll}1 & 3 \ 5 & 2 \ 0 & 4end{array} ight)left(egin{array}{llll}3 & 6 & 9 & 4 \ 2 & 7 & 8 & 3end{array} ight)=left(egin{array}{cccc}9 & ? & 33 & 13 \ 19 & 44 & 61 & 26 \ 8 & 28 & 32 & ?end{array} ight))

以右边那个8为例,可以看到它是第三行第一列,所以直接找到左边矩阵的第三行,即 ([0\,\,4]),和右边矩阵第一列 ([3\,\,2]^T),然后做点积即可求得为8.

  • 性质

  • ((mathrm{AB}) mathrm{C}=mathrm{A}(mathrm{BC}))

  • (A(B+C)=A B+A C)

  • ((mathrm{A}+mathrm{B}) mathrm{C}=mathrm{AC}+mathrm{BC})

  • 矩阵转置:((A B)^{T}=B^{T} A^{T})

  • 对角矩阵:只有对角线上有非零元素

  • 单位矩阵:对角线上全为1的对角矩阵

  • 矩阵的逆:

    • (A A^{-1}=A^{-1} A=I)
    • ((A B)^{-1}=B^{-1} A^{-1})

矩阵乘法转化成矩阵形式

  • 点积

[egin{aligned} & vec{a} cdot vec{b}=vec{a}^{T} vec{b} \=left(egin{array}{lll}x_{a} & y_{a} & z_{a}end{array} ight)left(egin{array}{l}x_{b} \ y_{b} \ z_{b}end{array} ight)=left(x_{a} x_{b}+y_{a} y_{b}+z_{a} z_{b} ight) end{aligned} ]

  • 叉乘

(vec{a} imes vec{b}=A^{*} b=left(egin{array}{ccc}0 & -z_{a} & y_{a} \ z_{a} & 0 & -x_{a} \ -y_{a} & x_{a} & 0end{array} ight)left(egin{array}{l}x_{b} \ y_{b} \ z_{b}end{array} ight))

注意 : A*b的*不表示乘法




微信公众号:AutoML机器学习
MARSGGBO原创
如有意合作或学术讨论欢迎私戳联系~
邮箱:marsggbo@foxmail.com



2020-04-24 23:32:12



原文地址:https://www.cnblogs.com/marsggbo/p/12771181.html