Games101:Lecture 02 Review of Linear Algebra

Games101:Lecture 02 Review of Linear Algebra

Games101 Lecture 01 是一些图形学的基本介绍,我就不记录了,从 Lecture 02 开始

重点归纳:

  1. 图形学中的向量默认用列向量表示
  2. 向量点乘可以用于计算向量间的余弦夹角,从而得知向量互相的接近程度
  3. 向量点乘可以用于计算向量的投影,可以用于向量的分解,将向量分解成两个垂直的向量
  4. 向量点乘可以用于计算向量的方向性,判断两个向量是同向还是异向
  5. 阅读材料:Fundamentals of Computer Graphics(3rd or 4th ),第二章 (Miscellaneous Math)、第五章(Linear Algebra)

A Swift and Brutal Introduction to Linear Algebra!

一、向量(Vectors)

1. 向量的构成与特点

$${\large \overrightarrow{a}=\overrightarrow{A B}=B-A}$$

  • 向量通常写作${\large \overrightarrow{a}}$或者${\large \mathbf{a}}$
  • A指向B的向量 = B的坐标减去A的坐标
  • 向量具有长度和方向两个属性
  • 向量只要长度和方向相同就是相等的,并不关心其起始位置

2. 向量标准化(Vector Normalization)

$${\large \hat{a}=\vec{a} /|\vec{a}|}$$

  • 向量的长度被写作${\large |\vec{a}|}$
  • 单位向量(Unit Vector)就是长度为1的向量
  • 单位向量用于表示方向而不关心其长度

3. 向量求和(Vextor Addition)

  • 几何:平行四边形法则和三角形法则
  • 代数:坐标相加

4. 向量的坐标表示(Cartesian Coordinates)

  • ${\large \mathbf{X}}$、${\large \mathbf{Y}}$是正交(垂直在高维空间中的推广)的单位向量,分别是笛卡尔坐标系横轴和纵轴的方向
  • 图形学上默认向量是列向量的形式:${\large \mathbf{A}=\left(\begin{array}{l}x \\y\end{array}\right)=\left(\begin{array}{l}4 \\3\end{array}\right)}$

5. 向量的点乘(Vector Dot Product)

$${\large \vec{a} \cdot \vec{b}=|\vec{a}||\vec{b}| \cos \theta}$$
$${\large \cos \theta=\frac{\vec{a} \cdot \vec{b}}{|\vec{a}||\vec{b}|}}$$
$${\large \cos \theta=\hat{a} \cdot \hat{b}}$$

  • 向量的点乘结果是一个值
  • 已知两个向量的坐标表示,可以求他们之间的夹角,余弦夹角
  • 两个单位向量的夹角就是他们的点乘

5.1 向量点乘的属性

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

  • 当三个向量进行点乘时,后两个向量是不满足交换率和结合率的

5.2 在笛卡尔坐标系下的点乘计算

$${\large \vec{a} \cdot \vec{b}=\left(\begin{array}{l}x_{a} \\y_{a}\end{array}\right) \cdot\left(\begin{array}{l}x_{b} \\y_{b}\end{array}\right)=x_{a} x_{b}+y_{a} y_{b}}$$

$${\large \vec{a} \cdot \vec{b}=\left(\begin{array}{l}x_{a} \\y_{a} \\z_{a}\end{array}\right) \cdot\left(\begin{array}{l}x_{b} \\y_{b} \\z_{b}\end{array}\right)=x_{a} x_{b}+y_{a} y_{b}+z_{a} z_{b}{\Huge }}$$

5.3 利用点乘求解投影(Dot Product for Projection)

$${\large \vec{b}_{\perp}=k \hat{a}}$$

$${\large k=\left|\vec{b}_{\perp}\right|=|\vec{b}| \cos \theta} $$

$${\large \vec{b}_{\perp}=|\vec{b}| \cos \theta \hat{a}=|\vec{b}| \hat{a} \hat{b} \hat{a}=\vec{b} \hat{a} \hat{a}}$$

  • 向量的投影可以用于分解向量,将$\large \vec{b}$分解成两个互相垂直的向量$\large \vec{b}{\perp}$、$\large \vec{b}-\vec{b}{\perp}$

利用点乘判断向量间的方向

  • 求解$\large \vec{a}$和$\large \vec{c}$、$\large \vec{b}$的余弦夹角
  • 若$\large \cos \theta > 0$,则与$\large \vec{a}$同向
  • 若$\large \cos \theta = 0$,则与$\large \vec{a}$垂直
  • 若$\large \cos \theta < 0$,则与$\large \vec{a}$异向
  • 若$\large \cos \theta$越接近$1$,则越接近$\large \vec{a}$

Games101:Lecture 02 Review of Linear Algebra

https://fly.meow-2.com/post/computer-graphics/Games101-02.html

作者

Meow-2

发布于

2021-11-14

更新于

2022-03-27


评论