3D数学基础:图形与游戏开发第5章笔记

来源:互联网 发布:直播串流软件 编辑:程序博客网 时间:2024/05/06 06:16

    • 向量运算
      • 线性代数与几何
      • 符号约定
      • 零向量
      • 负向量
        • 运算法则
        • 几何解释
      • 向量大小长度或模
        • 运算法则
        • 几何解释
      • 标量与向量的乘法
        • 运算法则
        • 几何解释
      • 标准化向量
        • 运算法则
        • 几何解释
      • 向量的加法和减法
        • 运算法则
        • 几何解释
        • 一个点到另一个点的向量
      • 距离公式
      • 向量点乘内积
        • 运算法则
        • 几何解释
        • 向量投影
      • 向量叉乘叉积
        • 运算法则
        • 几何解释
      • 线性代数公式
      • 练习

向量运算

线性代数与几何

符号约定

  • 标量,用斜体的小写罗马或希腊字母表示,如a, b, x, y, z, θ, γ, λ.
  • 向量,用小写黑粗体字母表示,如a, b, u, v, q, r.
  • 矩阵,用大写黑粗体字母表示,如A, B, M, R.
  • 注意,不用的文档有不用的符号约定。一种常用的手写约定是,用符号a⃗ 表示向量

零向量

  • 任何集合都存在加性单位元x,对集合中任意元素y,满足y+x=y.
  • 零向量是唯一一个没有方向的向量.
  • 零向量表示的是”没有位移”.

负向量

对于任何集合,元素x的加性逆元为-x,其与x相加等于加性单位元,也就是x+(-x)=0.

运算法则

  • [x,y,z]=[x,y,z].

几何解释

  • 向量变负,将得到一个和原向量大小相等,方向相反的向量.

向量大小(长度或模)

运算法则

  • 向量的大小用向量两边家双竖线表示,如v⃗ =ni=1v2i.
  • 向量的大小就是向量个分量平方和的平方根,v⃗ =v2x+v2y+v2z.
  • 向量的大小就是一个非负标量.

几何解释

  • 对2D中的任意向量v⃗ ,能构造一个以v⃗ 为斜边的直角三角形.
  • |x⃗ |2=x⃗ 2.

标量与向量的乘法

标量与向量相乘,结果将得到一个向量,与原向量平行,但长度不同或方向相反.

运算法则

  • 将向量的每个分量都与标量相乘即可,
    v⃗ k=(1k)v⃗ =[vx/k,vy/k,vz/k]
  • 标量与向量相乘时,不需要写乘号.
  • 标量与向量的乘法与除法优先级高于加法与减法.
  • 标量不能除以向量,且向量不能除以另一个向量.
  • 负向量能被认为是乘法的特殊情况,乘以标量-1.

几何解释

  • 向量乘以标量k的效果是以因子|k|缩放向量的长度,如果k<0则向量的方向被反转.

标准化向量

单位向量就是大小为1的向量,单位向量也被称作标准化向量或者更简单的称为“法线”.

运算法则

  • 对于任意非零向量,都能计算出一个和v⃗ 方向相同的单位向量v⃗ norm=v⃗ v⃗ ,v⃗ 0⃗ .
  • 零向量不能被标准化.

几何解释

  • 2D平面中,如果以原点为尾画一个单位向量,那么向量的头将位于圆心在原点的单位圆上.3D空间中,单位向量的头将位于单位球上.

向量的加法和减法

如果两个向量的维数相同,那么它们能相加、或相减,结果向量的维数与原向量相同.

运算法则

  • 两个向量相加,将对应分量相加即可.
  • 减法解释为加负向量,a⃗ b⃗ =a⃗ +(b⃗ ).
  • 向量不能与标量或维数不同的向量相加减.
  • 向量的加法满足交换律,但向量减法不满足交换律.

几何解释

  • 加法:平移向量,使a⃗ 的头连接b⃗ 的尾,接着从a⃗ 的尾向b⃗ 的头画一个向量,这就是向量加法的“三角形法则”.
  • 减法:平移向量,使a⃗ 的尾连接b⃗ 的尾,接着从b⃗ 的头向a⃗ 的头画一个向量,这就是a⃗ b⃗ 的结果向量.

一个点到另一个点的向量

  • 减法a⃗ b⃗ 代表了从b⃗ a⃗ 的向量.

距离公式

  • d⃗ =a⃗ b⃗ , a⃗ b⃗ 的距离等于d⃗ 的长度.
  • 距离(a⃗ ,b⃗ )=a⃗ b⃗ =(axbx)2+(ayby)2+(azbz)2.

向量点乘(内积)

运算法则

  • 向量点乘中不能省略点乘号.
  • 向量点乘就是对应分量乘积的和,其结果是一个标量:
    a⃗ b⃗ =ni=1aibi
  • 点乘满足交换律,a⃗ b⃗ =b⃗ a⃗ .

几何解释

  • 点乘描述了两个向量的“相似”程度,点乘结果越大,两向量越相近.
  • 点乘等于向量大小与向量夹角的cos值的积:a⃗ b⃗ =a⃗ b⃗ cosθ.
  • θ=arccos(a⃗ b⃗ a⃗ b⃗ )
    .
  • 零向量和任意其他向量都垂直.
  • 点乘结果的符号可大致确定θ的类型:
a⃗ b⃗  θ a⃗ b⃗  >0 0θ<90 方向基本相同 =0 θ=90 正交 <0 90<θ180 方向基本相反

向量投影

  • 给定两个向量v⃗ n⃗ ,能将v⃗ 分解成两个向量:v⃗ v⃗ .它们分别与n⃗ 平行和垂直,并且满足v⃗ =v⃗ +v⃗ .一般称平行分量v⃗ v⃗ n⃗ 上的投影.
  • 下面求证v⃗ :
    v⃗ n⃗ =v⃗ n⃗ cosθ(1)

    v⃗ =n⃗ v⃗ n⃗ (2)

    cosθ=v⃗ v⃗ (3)

    变形为
    cosθv=v⃗ (4)

    (4)式代入(2)式得
    v⃗ =n⃗ vcosθn⃗ (5)

    右边同时乘以n⃗ 
    v⃗ =n⃗ vn⃗ cosθn⃗ 2(6)

    (1)式代入(6)式得
    v⃗ =n⃗ v⃗ n⃗ n⃗ 2(6)
  • v⃗ =v⃗ +v⃗ 知:
    v⃗ =v⃗ n⃗ v⃗ n⃗ n⃗ 2

向量叉乘(叉积)

向量叉乘结果是向量,并且叉乘不满足交换律

运算法则

  • 叉乘公式:
    x1y1z1×x2y2z2=y1z2z1y2z1x2x1z2x1y2y1x2
  • 叉乘的乘法优先于加减法之前计算,当点乘和叉乘在一起时,叉乘优先计算,a⃗ b⃗ ×c⃗ =a⃗ (b⃗ ×c⃗ )(三重积).
  • 叉乘满足反交换律:a⃗ ×b⃗ =(b⃗ ×a⃗ ).
  • 叉乘也不满足结合律:(a⃗ ×b⃗ )×c⃗ a⃗ ×(b⃗ ×c⃗ )

几何解释

  • 叉乘的得到的向量垂直于原来的两个向量.
  • a⃗ ×b⃗ 的长度等于向量的大小与向量夹角sin值的积,如:a⃗ ×b⃗ =a⃗ b⃗ sinθ(以a⃗ b⃗ 为边的平行四边形面积).
  • 叉乘对零向量的解释为:它平行于任意其他向量.
  • 在左手坐标系中,让a⃗ b⃗ 的尾部相连,如果a⃗ b⃗ 呈顺时钟,那么a⃗ ×b⃗ 垂直于a⃗ b⃗ 所在平面且方向向上.

线性代数公式

  • 向量加法的交换律:a⃗ +b⃗ =b⃗ +a⃗ 
  • 向量减法的定义:a⃗ b⃗ =a⃗ +(b⃗ )
  • 向量加法的结合律:(a⃗ +b⃗ )+c⃗ =a⃗ +(b⃗ +c⃗ )
  • 标量乘法的结合律:s(ta⃗ )=(st)a⃗ 
  • 标量乘法对向量加法的分配律:k(a⃗ +b⃗ )=ka⃗ +kb⃗ 
  • 向量乘以标量相当于以标量的绝对值为因子缩放向量:ka⃗ =|k|a⃗ 
  • 向量的模非负:a⃗ 0
  • 勾股定理在向量中的应用:若a⃗ b⃗ ,则a⃗ 2+b⃗ 2=a⃗ +b⃗ 2
  • 向量加法的三角形法则:a⃗ +b⃗ a⃗ +b⃗ 
  • 点乘的交换律:a⃗ b⃗ =b⃗ a⃗ 
  • 用点乘定义向量的大小:a⃗ =a⃗ a⃗ 
  • 标量乘法对点乘的结合律:k(a⃗ b⃗ )=(ka⃗ )b⃗ =a⃗ (kb⃗ )
  • 点乘对向量加减法的分配律:a⃗ (b⃗ +c⃗ )=a⃗ b⃗ +a⃗ c⃗ 
  • 任意向量与自身的叉乘等于零向量:a⃗ ×a⃗ =0⃗ 
  • 叉乘逆交换律:a⃗ ×b⃗ =(b⃗ ×a⃗ )
  • 叉乘的操作数同时变负得到相同的结果:a⃗ ×b⃗ =(a⃗ )×(b⃗ )
  • 标量乘法对叉乘的结合律:k(a⃗ ×b⃗ )=(ka⃗ )×b⃗ =a⃗ ×(kb⃗ )
  • 叉乘对向量加法的分配律:a⃗ ×(b⃗ +c⃗ )=a⃗ ×b⃗ +a⃗ ×c⃗ 
  • 向量与另一向量的叉乘再点乘该向量本身等于零:a⃗ (a⃗ ×b⃗ )=0

练习

阅读全文
0 0
原创粉丝点击