3차원 회전 행렬 공식, 3D 좌표 변환 공식 (삼각함수, 오일러각)
- C++ 200제/코딩 IT 정보
- 2018. 7. 18.
3차원 회전 행렬 공식, 3D 좌표 변환 공식 (삼각함수, 오일러각)
따로 포스팅하려다가 정말 훌륭한 포스팅이 있어 행렬 부분만 인용합니다.
저에게 필요한 부분은 X, Y, Z 축 중 한 곳이 회전될 때 기존의 좌표를 어떻게 변환하느냐였습니다.
출처의 에이레네님 회전행렬 글 중 해당 부분만 인용합니다.
[삼각함수와 오일러각을 응용한 회전 행렬 공식]
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 좌표 변환 공식 (삼각함수, 오일러각)