Unity中 歐拉角 旋轉矩陣的變換


.Unity中的歐拉角旋轉

Unity中的歐拉角旋轉可以分兩個角度來看,世界和本地。

World 世界 Z-->X-->Y  :

 

 

 

 

Local 本地 Y-->X-->Z :

 

 

 

.Unity中的旋轉矩陣

 

  Rx,Ry,Rz

由於unity中的旋轉遵從左手定則,因此x,y,z軸的旋轉矩陣為

Rx:

 

Ry

 

Rz: 

 

(其實和右手坐標系 + 右手定則的旋轉 是一樣的)

  合並旋轉矩陣 R

這里合並按照世界的歐拉旋轉來搞,因此R = RyRxRz

R: 

 

 

 (c:cos s:sin)

.旋轉矩陣轉歐拉角

  

由以上公式很好求出旋轉矩陣->歐拉角的轉換:

 

 

 

 

 

 

 

float x = Mathf.Atan2(-matrix[1, 2], Mathf.Sqrt(matrix[1, 0] *matrix[1, 0] + matrix[1, 1] * matrix[1, 1]));
float y = Mathf.Atan2(matrix[0,2], matrix[2,2]);
float z = Mathf.Atan2(matrix[1,0],matrix[1,1]);

 

 

Demon場景

文檔:歐拉角 旋轉矩陣的變換.note
鏈接:http://note.youdao.com/noteshare?id=3c3baa8503519cab67b7b682b368add7&sub=AE4E61A1A7B84D249F152099CAE348F4

 


免責聲明!

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



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