2013-05-03 37 views
0

使用數學庫GLM,我使用此代碼將歐拉旋轉角度與旋轉矩陣相結合。這個代碼產生哪個歐拉角度順序?

#include <GLM/gtc/matrix_transform.hpp> 
using namespace glm; 

mat4 matrix = rotate(mat4(1), X, vec3(1, 0, 0)) 
      * rotate(mat4(1), Y, vec3(0, 1, 0)) 
      * rotate(mat4(1), Z, vec3(0, 0, 1)); 

這是否會導致XYZ或ZYX的歐拉角度排序?我不確定,因爲矩陣乘法表現與標量乘法不同。

回答

1

請記住,在openGL中的矩陣計算使用了一種稱爲向量列的符號(http://en.wikipedia.org/wiki/Column_vector)。因此,任何點變換將由線性方程的系統來表達,在載體柱表示法是這樣的:

[P'] = M. [P],其中M = M1.M2.M3

這意味着,應用於矢量[P]表示的點的第一個轉換是M3,然後是M2,最後是M1。

回答你的問題,一旦Z旋轉變換是你寫入矩陣乘法的最後一個矩陣,結果歐拉角將爲ZXY。