본문 바로가기
C++ 200제/코딩 IT 정보

3차원 회전 행렬 공식, 3D 좌표 변환 공식 (삼각함수, 오일러각)

by vicddory 2018. 7. 18.

3차원 회전 행렬 공식, 3D 좌표 변환 공식 (삼각함수, 오일러각)


따로 포스팅하려다가 정말 훌륭한 포스팅이 있어 행렬 부분만 인용합니다.



저에게 필요한 부분은 X, Y, Z 축 중 한 곳이 회전될 때 기존의 좌표를 어떻게 변환하느냐였습니다.


출처의 에이레네님 회전행렬 글 중 해당 부분만 인용합니다.


회전 행렬 공식, 3D 좌표 변환 공식[삼각함수와 오일러각을 응용한 회전 행렬 공식]


X축 회전

X' = X //X값은 변하지 않는다.

Y' = (Cosθ*Y) + (-Sinθ*Z)

Z' = (Sinθ *Y) + (Cosθ*Z)


Y축 회전

X' = (Cosθ*X) + (-Sinθ*Z)

Y' = Y //y값은 변하지 않는다.

Z' = (Sinθ *X) + (Cosθ*Z)


Z축 회전

X' = (Cosθ*X) + (-Sinθ*Y)

Y' = (Sinθ *X) + (Cosθ*Y)

Z' = Z //z값은 변하지 않는다.


공통으로 Sin을 계산할 땐 음수로 해야 합니다.


그래야 3D 공간에서 회전하는 방향에 맞춰 좌표 변환을 명확히 할 수 있으니깐요. 그리고 삼각함수와 오일러각에 대해 이해하고 공식을 사용해 보세요. 물론 이 내용도 모두 에이레네님 블로그에 있습니다.



장문의 행렬 관련 글을 썼다가 에이레네님 글을 읽고 기가 눌려 지웠습니다. 자세한 사항은 출처를 참고해주세요.



3차원 회전 행렬 공식, 3D 좌표 변환 공식 (삼각함수, 오일러각)

댓글