您的位置:首页 > 其它

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

2017-08-11 09:41 369 查看
向量运算
线性代数与几何

符号约定

零向量

负向量
运算法则

几何解释

向量大小长度或模
运算法则

几何解释

标量与向量的乘法
运算法则

几何解释

标准化向量
运算法则

几何解释

向量的加法和减法
运算法则

几何解释

一个点到另一个点的向量

距离公式

向量点乘内积
运算法则

几何解释

向量投影

向量叉乘叉积
运算法则

几何解释

线性代数公式

练习

向量运算

线性代数与几何

符号约定

标量,用斜体的小写罗马或希腊字母表示,如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⃗ ∥=(ax−bx)2+(ay−by)2+(az−bz)2−−−−−−−−−−−−−−−−−−−−−−−−−−−√.

向量点乘(内积)

运算法则

向量点乘中不能省略点乘号.

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

a⃗ ⋅b⃗ =∑ni=1aibi

点乘满足交换律,a⃗ ⋅b⃗ =b⃗ ⋅a⃗ .

几何解释

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

点乘等于向量大小与向量夹角的cos值的积:a⃗ ⋅b⃗ =∥a⃗ ∥⋅∥b⃗ ∥⋅cosθ.

θ=arccos(a⃗ ⋅b⃗ ∥a⃗ ∥⋅∥b⃗ ∥).

零向量和任意其他向量都垂直.

点乘结果的符号可大致确定θ的类型:

a⃗ ⋅b⃗ θa⃗ 和b⃗
>00。≤θ<90。方向基本相同
=0θ=90。正交
<090。<θ≤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⃗ ∥v∥→⋅cosθ∥n⃗ ∥(5)

右边同时乘以∥n⃗ ∥

v⃗ ∥=n⃗ ∥v∥→⋅∥n⃗ ∥⋅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⎤⎦⎥=⎡⎣⎢y1z2−z1y2z1x2−x1z2x1y2−y1x2⎤⎦⎥

叉乘的乘法优先于加减法之前计算,当点乘和叉乘在一起时,叉乘优先计算,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

练习

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息