2011-02-04 4 views
2

에 /에서 피치 요 롤을 설정 내가 설정 한 코드는 다음과 같이한다 상당히 확신 :얻기 및 OpenGL 모델 뷰 행렬

function setPYR(float pitch, float yaw, float roll) { 
    glLoadIdentity(); 
    glRotatef(pitch, 1, 0, 0); 
    glRotatef(yaw, 0, 1, 0); 
    glRotatef(roll, 0, 0, 1); 
} 

어떻게 현재의 모델 뷰 행렬에서 피치, 요와 롤을 얻을 수 있습니다 ?

+0

변수를 변수에 저장 한 다음 저장된 값을 반환하지 않는 이유는 무엇입니까? –

+0

대부분의 경우 나는 이것을 저장하지 않습니다 –

답변

1

The Matrix and Quaternions FAQ을 살펴보십시오.

+0

이 링크는 Q36이 오일러 각 (요, 피치, 롤)에서 모델 뷰 매트릭스로가는 적절한 방법을 제공함을 제시합니다. 그러나 내가 잘못 본 것이 아니라면이 방법은 짐벌 잠금으로 인해 문제가 발생합니다. 맞습니까? (적어도 Q36에 따라 구현할 때 짐벌 잠금 문제가 발생합니다.)이 경로를 따라가는 것이 더 좋지 않습니까? Q60. 오일러 회전 각을 quaternion? *로 변환 한 다음 * Q54로 변환하려면 어떻게합니까? 쿼터니온을 회전 행렬로 변환하려면 어떻게해야합니까? *? 아마도 [this] (http://www.arcsynthesis.org/gltut/Positioning/Tut08%20Quaternions.html)도 도움이 될 수 있습니다. – bluenote10

+0

https://developer.android.com/reference/android/opengl/Matrix.html#setRotateEulerM(float[],%20int,%20float,%20float,%20float) –