Vector3函數理解-計算兩向量之間的角度


1.已知兩個向量dirA,dirB。
Vector3 dirA = new Vector3(-1,1,0);

Vector3 dirB = new Vector3(-1,1,1);
2.使向量處於同一個平面,這里平面為XZ

dirA = dirA - Vector3.Project(dirA,Vecotr3.up);
dirB = dirB - Vector3.Project(dirB,Vecotr3.up);
注:Vector3.Project計算向量在指定軸上的投影,向量本身減去此投影向量就為在平面上的向量
3.計算角度
float angle = Vector3.Angle(dirA,dirB);

4.計算方向
float dir = (Vector3.Dot (Vector3.up, Vector3.Cross (dirA, dirB)) < 0 ? -1 : 1);
angle *= dir;

Vector3.Cross 叉乘返回為同時垂直於兩個參數向量的向量,方向可朝上也可朝下,由兩向量夾角的方向決定。
Vector3.Dot 點乘意義為兩參數向量方向完全相同返回1,完全相反返回-1,垂直返回0。當兩向量角度減小,將得到更大的值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM