您的位置:首页 > 其它

四元数和向量相乘,向量间的点乘和叉乘

2017-12-25 10:44 218 查看


四元数和向量相乘

     
 Quaternion.Euler(x,y,z) 返回一个绕x轴旋转x度再绕y轴旋转y度再绕z轴旋转z度的Quaternion,因此Quaternion.Euler(0,90,0)返回一个绕y轴旋转90度的旋转操作.
Quaternion作用于Vector3的右乘操作(*)返回一个将向量做旋转操作后的向量.

因此Quaternion.Euler(0,90,0)*Vector3(0.0,0.0,-10)表示将向量Vector3(0.0,0.0,-10)做绕y轴90度旋转后的结果.因该等于Vector3(-10,0,0).


点乘

        两个向量点乘得到一个标量 ,数值等于两个向量长度相乘后再乘以二者夹角的余弦值 。如果两个向量a,b均 为单位 向量 ,那么a.b等于向量b在向量a方向上的投影的长度

点乘后得到的是一个值:

若结果 == o,则 两向量 互垂直 。

若结果 < 0  ,则 两向量夹角大于90°。

若结果 >0  ,则两向量夹角小于 90°。


叉乘

      两个向量的叉乘得到一个新的向量 ,新向量垂直于原来的两个向量再乘夹角的正弦值 叉乘后得到的还是一个向量


结论

       在unity3D里面。两个向量的点乘所得到的是两个向量的余弦值,也就是-1 到1之间,0表示垂直,-1表示相反,1表示相同方向。两个向量的叉乘所得到的是两个向量所组成的面的垂直向量,分两个方向。
简单的说,点乘判断角度,叉乘判断方向。 形象的说当一个敌人在你身后的时候,叉乘可以判断你是往左转还是往右转更好的转向敌人,点乘得到你当前的面朝向的方向和你到敌人的方向的所成的角度大小。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: