点乘和叉乘在unity中有广泛的应用:结论点乘判断角度,叉乘判断朝向方位。
点乘:结果为一个常数
又称"点积","数量积”,“内积”(Dot Product, 用*)
对于向量 A = (x1, y1, z1) ,向量 B = (x2, y2, z2),
则向量A点乘向量 B:
A·B = x1 * x2 + y1 * y2 + z1 * z2
同时有
A·B = |A||B|Cosθ
由以上两公式可见,向量的点乘结果为一个标量,即一个数值。
因为夹角θ<=180°,所以配合余弦曲线可以直观地判断出:
当向量 A·B > 0 时,θ < 90° ;
当向量 A·B < 0 时,θ > 90° ;
当向量 A·B = 0 时,θ = 90° ;
向量点乘符合乘法交换律,即:A·B = B·A
Unity项目应用:
1.根据点乘计算两个向量的夹角。θ = arccos(A·B / |A||B|)
2.根据点乘的正负值,得到夹角大小范围,>0,则夹角(0,90)<0,则夹角(90,180),可以利用这点判断一个多边形是面向摄像机还是背向摄像机。
3.根据点乘的大小,得到向量的投影长度,反应了向量的长度关系。
4.利用点积可判断一个多边形是否面向摄像机还是背向摄像机。向量的点积与它们夹角的余弦