《3D数学基础:图形与游戏开发》5.第5章 向量运算

3. 零向量

  • 零向量不等于一个带你,因为零向量没有定义某个位置。
  • 零向量表示的是 “没有位移”,就像标量零表示的是 “没有数量” 一样

4.负向量

  • 几何解释:向量变负,将得到一个和原向量大小相等,方向相反的向量

5.向量大小(长度或模)

  • 公式:

    \[||v||=\sqrt{(v_x^2+v_y^2)}(对2D向量v) \]

    \[||v||=\sqrt{(v_x^2+v_y^2+v_z^2)}(对3D向量v) \]

  • 几何解释:对 2D 向量 v ,能构造一个以 \(v\) 为斜边的直角三角形,直角边的长度分别为分量 \(v_x\) ,\(v_y\) 的绝对值,斜边长度即为向量 \(v\) 的大小

6. 标量和向量的乘法

  • 注意点

    • 标量和向量的乘法和除法优先级高于加法和减法,例如,\(3a+b\)\((3a)+b\) ,而不是 \(3(a+b)\)
    • 标量不能除以向量,并且向量不能除以另一个向量
  • 几何解释

    • 几何意义上,向量乘以标量 k 的效果是以因子 \(|k|\) 缩放向量的长度

7.标准化向量

  • 应用背景:对于许多向量,只关心它的方向而不关心它的大小,例如,“我面向的是什么方向?”,在这样的情况下,使用单位向量将非常方便
  • 几何解释
    • 2D 环境中,如果以原点为尾画一个单位向量,那么向量的头将接触到圆心在原点的单位圆,在 3D 环境中,单位向量将接触到单位球

8.向量的加法和减法

  • 注意点

    • 向量不能和标量或维数不同的向量相加减
    • 和标量加法一样,向量加法满足交换律,但向量减法不满足交换律:永远有 \(a+b=b+a\) ,但 \(a-b=-(b-a)\) ,仅当 \(a=b\) 时,\(a-b=b-a\)
  • 几何解释

    • 向量 a 和 b 相加的几何解释为:平移向量,使向量 a 的头连接向量 b 的尾,接着从 a 的尾向 b 的头画一个向量,即向量加法的 “三角形法则”
    • “三角形法则” 可以解释之前提到的:向量能被解释为与轴平行的位移序列。例如,向量 [1,-3,4] 为什么可以被解释为位移序列:向右1个单元,向下3个单元,向前4个单元

    \[\left[\begin{array}{c}1 \\-3 \\4\end{array}\right]=\left[\begin{array}{l}1 \\0 \\0\end{array}\right]+\left[\begin{array}{c}0 \\-3 \\0\end{array}\right]+\left[\begin{array}{l}0 \\0 \\4\end{array}\right] \]

10.向量点乘

  • 向量点乘就是对应分量乘积的和,其结果是一个标量

  • 点乘满足交换律:\(a \cdot b = b \cdot a\)

  • 几何解释

    • 点乘等于向量大小与向量夹角的 cos 值的积:\(a \cdot b=||a|| ||b|| cos\theta\)

    • 两向量的夹角:\(\theta=arccos(\frac{a\cdot b}{||a||||b||})\)

    • 点乘的结果描述了两个向量的 “相似” 程度,点乘结果越大,两向量越相近

    • 点乘结果的符号可大致确定 \(\theta\) 的类型

    a·b Θ 角度 a 和 b
    >0 0°≤Θ<90° 方向基本相同
    0 Θ≤90° 正交
    <0 90°<Θ≤180° 方向基本相反
  • 向量投影

    • 给定两个向量 \(v\)\(n\),能将 \(v\) 分解为两个分量:\(v_{\|}\)\(v_{\perp}\) 。它们分别平行于和垂直于 \(n\),并满足 \(v=v_{\perp}+v_{\|}\)。称平行分量 \(v_{\|}\)\(v\)\(n\) 上的投影

    • 使用点乘计算投影,几何解释:

      • \(\mathbf{v}_{\|}=\mathbf{n} \frac{\left\|\mathbf{v}_{\mathrm{u}}\right\|}{\|\mathbf{n}\|}\)

      • \(\begin{aligned} &\cos \theta=\frac{\left\|\mathbf{v}_{\|}\right\|}{\|\mathbf{v}\|}\\ &\cos \theta\|\mathbf{v}\|=\left\|\mathbf{v}_{\mathrm{\|}}\right\| \end{aligned}\)

      • 所以:

        \(\begin{aligned} \mathbf{v}_{\|} &=\mathbf{n} \frac{\|\mathbf{v}\| \cos \theta}{\|\mathbf{n}\|} \\ &=\mathbf{n} \frac{\|\mathbf{v}\|\|\mathbf{n}\| \cos \theta}{\|\mathbf{n}\|^{2}} \\ &=\mathbf{n} \frac{\mathbf{v} \cdot \mathbf{n}}{\|\mathbf{n}\|^{2}} \end{aligned}\)

11.向量叉乘

  • 叉乘仅可用于 3D 向量,叉乘得到一个向量,并且不满足交换律

  • 计算公式

    \[\left[\begin{array}{l} x_{1} \\ y_{1} \\ z_{1} \end{array}\right] \times\left[\begin{array}{l} x_{2} \\ y_{2} \\ z_{2} \end{array}\right]=\left[\begin{array}{l} y_{1} z_{2}-z_{1} y_{2} \\ z_{1} x_{2}-x_{1} z_{2} \\ x_{1} y_{2}-y_{1} x_{2} \end{array}\right] \]

  • 几何解释

    • 叉乘得到的向量垂直于原来的两个向量
  • \(\mathbf{a} \times \mathbf{b}\) 的方向判断

    • \(\mathbf{a} \times \mathbf{b}\) 垂直于 \(\mathbf{a}\)\(\mathbf{b}\) ,但垂直于 \(\mathbf{a}\)\(\mathbf{b}\) 有两个方向
    • 判断方法:右手螺旋定则:
  • 叉乘的应用:创建垂直于屏幕、三角形或多边形的向量

猜你喜欢

转载自www.cnblogs.com/bky-hbq/p/12684022.html