【数学】向量
向量的运算
点乘
输入两个向量,输出一个标量。又称作标量积,内积。
定义
- 几何定义:a⋅b=∣a∣∣b∣cos(θ)
- 代数定义:a⋅b=∑i=1naibi=a1b1+a2b2+⋯+anbn
意义
- dot(a,b) > 0 :a 和 b 同向,即夹角为 0-90。
- dot(a,b) = 0 :a 和 b 相互垂直。
- dot(a,b) < 0 :a 和 b 反向,即夹角为 90-180。
性质
- 满足交换律:a⋅b=b⋅a
- 满足加法分配律:a⋅(b+c)=a⋅b+a⋅c
- 乘以标量时满足:(c1a)⋅(c2b)=(c1c2)(a⋅b)
叉乘
输入两个向量,输出一个向量。又称作外积,向量积。
定义
-
几何定义:
a×b=∣a∣∣b∣sin(θ)n
其中θ是a,b的夹角,n是与a,b所构成的平面垂直的单位向量。
-
代数定义:
a×b=xaxbxyaybyzazbz=x(−1)1+1aybyazbz+y(−1)1+2axbxazbz+z(−1)1+3axbxayby=x(aybz−azby)−y(axbz−azbx)+z(axby−aybx)
其中x,y,z分别为三维空间的三个基向量
意义
- 计算与 a 和 b 相垂直向量 c。
- c 的模长等于以 a,b 为临边的四边形面积。
- 伸出手,掌心对准 a 和 b 的夹角,手掌应能通过弯曲模拟 a 旋转到 b 的状态,此时大拇指为旋转轴,同时也便是叉乘出的新向量 c。
夹角
给定任意两个向量 a 和 b 求其夹角:
angle(a,b)=arccos(∣a∣∣b∣∣a∣∣b∣cos(θ))=arccos(∣a∣∣b∣dot(a,b))
投影
若 v 是待投影的向量,n 是投影到的法线,则:
project(v,n)=∣n∣n∗∣v∣cos(θ)=∣n∣n∗∣n∣dot(v,n)
特别当 n 为单位向量时:
project(v,n)=n∗dot(v,n)
旋转
给定向量 v 以 n 为旋转轴转 θ 度,求旋转后新向量:
v∥v⊥rotate(v,n,θ)=project(v,n)=v−v∥=v⊥cos(θ)+cross(n,v⊥)sin(θ)+v∥
基本原理是将 v 拆解成两个向量旋转的复合:一个平行旋转轴故无需旋转;一个与旋转轴垂直,可借助叉乘构建二维旋转坐标系,利用三角函数轻松求出旋转后的向量;