2013-05-03 1 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입니다.

귀하의 질문에 답하면 오일러 각도는 ZXY가됩니다. Z 회전 변환은 행렬 곱셈을 작성하기 위해 작성한 마지막 행렬입니다.

관련 문제