1. 程式人生 > >四元數和向量相乘,向量間的點乘和叉乘

四元數和向量相乘,向量間的點乘和叉乘

四元數和向量相乘

   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表示相同方向。兩個向量的叉乘所得到的是兩個向量所組成的面的垂直向量,分兩個方向。 簡單的說,點乘判斷角度,叉乘判斷方向。 形象的說當一個敵人在你身後的時候,叉乘可以判斷你是往左轉還是往右轉更好的轉向敵人,點乘得到你當前的面朝向的方向和你到敵人的方向的所

成的角度大小