2012-05-01 59 views
0

我在Android的OpenGL中使用模型旋轉。3軸OpenGL ES旋轉模型

爲什麼下面的這兩個例子不會產生相同的結果?我想,沒有區別,當我圍繞着軸x再旋轉yy然後x

gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL 
gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION 
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH 


gl.glRotatef(_angleX, 1f, 0f, 0f); //ELEVATION 
gl.glRotatef(_angleY, 0f, 1f, 0f); //ROLL 
gl.glRotatef(_angleZ, 0f, 0f, 1f); //AZIMUTH 
+3

恭喜你,你剛剛發現**一個歐拉角的原因通常是一個糟糕的代表輪轉的原因:有大量不同的約定和**他們確實都給出不同的結果**並且大家都認爲他的約定是標準的,儘管它們都是平等的(不)強大的。 –

回答

0

除非那些輪換都同時應用,否則我會認爲訂單肯定會很重要。

如果我有一個立方體和我旋轉時,它圍繞x軸和移動正面頂部,圍繞Y軸旋轉之後,原始正面仍然是在頂部

如果代替我第一繞y軸的旋轉原始正面將被預留,以便在移動時我然後圍繞x軸原始正面NOT被旋轉以旋轉頂部

我相信訂單輪轉確實是的事。