一.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]);
文檔:歐拉角 旋轉矩陣的變換.note
鏈接:http://note.youdao.com/noteshare?id=3c3baa8503519cab67b7b682b368add7&sub=AE4E61A1A7B84D249F152099CAE348F4
