2012-05-01 2 views
0

Android의 OpenGL에서 모델을 회전하고 있습니다.3 축의 OpenGL ES 회전 모델

아래의 두 예제가 왜 같은 결과를 나타내지 않는 이유는 무엇입니까? 나는 축이 x에 대해 회전하고 나서 y 또는 y, 그 다음에 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

축하합니다, 당신은 단지 ** 한 ** 오일러 각은 보통 회전에 대한 나쁜 표현입니다 이유의 발견이 다른 규칙의 엄청난 금액이며, ** 그들은 참으로 모든 ** 다른 결과를 모두가 생각하는 자신의 그들은 모두 똑같이 (UN) 강력한있어하지만 규칙은, 표준입니다. –

답변

0

이러한 회전이 모두 동시에 적용되는 경우가 아니면 순서가 중요하다고 생각합니다.

I 큐브 있었고, I는 상기 Y 축 중심으로 회전 한 후, 원래 표면을 X 축 주위를 회전하고 가기정면 이동하면 계속 될 상단.

대신 경우 I 먼저 y 축을 중심으로 회전 I는 다음 X 축가로 회전 않을 것이다 원래의 표면을 중심으로 회전 할 때 그 원래 표면 따로 때문에 이동 될 최고.

나는 회전 의 순서가 문제를한다는 것을 믿는다.