本文已参与[新人创作礼]活动,一起开启掘金创作之路
图形学的数学基础(三):向量点积(Dot Product)
点积
点积(DotProduct)是向量乘法中比较简单的一种(另外一种叫做叉乘),但是点积在图形学中应用非常广泛,与许多其它运算有重要的关系,例如矩阵乘法、信号卷积、统计相关、和傅里叶变换等。
定义
向量点积等于两个向量的长度相乘再乘以两向量夹角的余弦.

a⋅b=∣∣a∣∣∣∣b∣∣cosθ
推导:
cosθ=∣∣a∣∣∗∣∣b∣∣a⋅b
对于单位向量来说
cosθ=a⋅b
公式
两个向量的点积是相应分量的乘积之和,得到的结果是一个标量,因此也叫做标量乘法(ScalarProduct)。
a⋅b=i=1∑naibi
二维和三维向量点积
a⋅b=axbx+ayby
a⋅b=axbx+ayby+azbz
性质
-
交换律
a⋅b=b⋅a
-
结合律
(ka)⋅b=a⋅(kb)=k(a⋅b)
-
分配律
a⋅(b+c)=a⋅b+a⋅c
几何意义
向量点积的几何意义对于我们来说至关重要,因为涉及到图形学的方方面面,以下我们将从两个方面进行探讨.
投影
点积a.b等于b投影到平行于a的直线上的有符号号长度,乘以a的长度.
如何理解这句话呢?根据点积的定义及直角三角形余弦定理我们得知
a⋅b=∣∣a∣∣∣∣b∣∣cosθ
->
∣∣b⊥∣∣=cosθ∣∣b∣∣
->
b⊥=∣∣b⊥∣∣a^=cosθ∣∣b∣∣a^
->
a⋅b=∣∣a∣∣∣∣b∣∣cosθ=∣∣b⊥∣∣∣∣a∣∣

分解向量
根据上小节向量投影的介绍我们能够得到b向量在a向量上的投影向量,因此我们可以将b向量进行分解,其中一条沿着a方向即b⊥,另外一条垂直于a向量,即b∥,如下图所示

b⊥=∣∣b⊥∣∣a^=cosθ∣∣b∣∣a^
b∥=b−b⊥
向量大小于点积的关系
v⋅v=∣∣v∣∣2
夹角
- 点积的符号可以给予我们对两个向量相对方向的粗略分类

-
两个单位向量的点积等于夹角的余弦.
a^⋅b^=cosθ
-
使用点积计算两个向量之间的角度
θ=arccos(∣∣a∣∣∣∣b∣∣a⋅b)
参考
《3D数学基础》图形和游戏开发(第二版)
GAMES101 -现代计算机图形学入门-闫令琪