向量的操作
向量点乘(Dot Product)
两个向量点乘,是这两个向量每个分量相乘结果的和。
对于3D向量,可以表示为:
a
⋅
b
=
a
x
b
x
+
a
y
b
y
+
a
z
b
z
a\cdot b = a_xb_x + a_yb_y + a_zb_z
a⋅b=axbx+ayby+azbz
向量点乘的几何意义
用于计算两向量夹角的余弦值
a
⋅
b
=
∥
a
∥
∥
b
∥
cos
θ
a\cdot b = \rVert a \rVert \rVert b\rVert \cos\theta
a⋅b=∥a∥∥b∥cosθ
cos
θ
=
a
⋅
b
∥
a
∥
∥
b
∥
=
a
∥
a
∥
⋅
b
∥
b
∥
\cos\theta= \frac{a\cdot b }{\rVert a \rVert \rVert b\rVert} = \frac{a}{\rVert a \rVert } \cdot\frac{b}{\rVert b \rVert }
cosθ=∥a∥∥b∥a⋅b=∥a∥a⋅∥b∥b
如果向量a、b都是单位向量,则可以简化为:
cos
θ
=
a
⋅
b
\cos\theta= a \cdot b
cosθ=a⋅b
应用1:光照计算。计算反射光和法线的夹角余弦值,余弦值越大夹角越小光照强度越大,余弦值越小夹角越大光照强度越大。
应用2:背面裁剪。反射光和平面法线的余弦值大于0,则在平面正向,小于0则在平面反向。
总结
cos
θ
=
0
,那么u与v垂直
\cos\theta =0 \text {,那么u与v垂直}
cosθ=0,那么u与v垂直
cos
θ
>
0
,那么向量u、v之间的夹角在0到90°之间,方向基本相同
\cos\theta >0 \text {,那么向量u、v之间的夹角在0到90°之间,方向基本相同}
cosθ>0,那么向量u、v之间的夹角在0到90°之间,方向基本相同
cos
θ
<
0
,那么向量u、v之间的夹角在90°到180°之间,方向基本相反
\cos\theta <0 \text {,那么向量u、v之间的夹角在90°到180°之间,方向基本相反}
cosθ<0,那么向量u、v之间的夹角在90°到180°之间,方向基本相反
点乘第二个集合意义
用于计算向量u在向量v上的投影
a在b上的投影
=
∥
a
∥
∗
cos
θ
=
a
⋅
b
∥
b
∥
=
Dot(u,normalized(v))
\text {a在b上的投影} = \rVert a \rVert*\cos\theta = \frac{a\cdot b}{ \rVert b \rVert}=\text{Dot(u,normalized(v))}
a在b上的投影=∥a∥∗cosθ=∥b∥a⋅b=Dot(u,normalized(v))
a
⋅
b
代表a在b上的投影与
∥
b
∥
的乘积
a\cdot b\text{代表a在b上的投影与}\rVert b \rVert \text{的乘积}
a⋅b代表a在b上的投影与∥b∥的乘积