Bootstrap

Unity:Vector3类--点乘与叉乘

Unity:Vector3类_点乘与叉乘

(一)点乘

又称“点积”或“内积”。

公式:各分量乘积和 [x1,y1,z1]*[x2,y2,z2] = x1x2+y1y2+z1z2

几何意义:a·b = |a|·|b|cos<a,b> 两个向量的单位向量相乘后 再乘以二者夹角的余弦值。

API:float dot = Vector3.Dot(Va,Vb);

点乘应用
对于标准化过的向量,点乘结果等于两向量夹角的余弦值。 应用 :计算两向量夹角
float dot = Vector3.Dot(a.normalized,b.normalized); 
float angle = Mathf.Acos(dot)*Mathf.Rad2Deg;

在这里插入图片描述
(二)叉乘

又称“叉积”或“外积”。

公式:各分量乘积和 [x1,y1,z1][x2,y2,z2] =[y1z2- z1y2,z1x2-x1z2,x1y2-y1*x2]

几何意义:结果为两个向量所组成面的垂直向量,模长为两向量模 长乘积再乘夹角的正弦值。

脚本:Vector vector = Vector3.Cross(a,b);

叉乘应用
创建垂直于平面的向量。
判断两条向量相对位置。