기본 콘텐츠로 건너뛰기

라벨이 쿼터니언인 게시물 표시

[공유] 사원수(Quaternion)

출처 What Can I Do For U? | happypcb 원문 https://blog.naver.com/happypcb/90005534378 Quaternion 개발관련/수학 2006/04/01 11:54 쿼터니언(사원수). 이 놈을 제대로 알지도 못하면서 너무 오랫동안 써왔다. 오일러각 표현 처럼 짐벌락 문제가 없기 때문에 캐릭터 애니메이션 부터 아크볼까지 많은 부분에서 사용되는 사원수. 단지 회전축과 회전량을 표현한다는 것만 알고 있었을 뿐 D3DX 에서 제공하는 함수들만 사용하면서 그냥 그런 블랙박스였다. -_-; 이렇게 원리를 모르고 사용하는 것에 대한 문제점은, 단지 정형화된 사용법에만 익숙해지고 새로운 응용법이나 약간만 꼬아놓아도 이해를 하지 못한다는 것이다. 이렇게 얇팍해서는 안된다. 최근에 이것저것 공부하면서 이제서야 사원수에 대해서 조금 알 것 같은데 간단하게 여기에다가 정리해 보도록 한다. 사원수의 연산 및 성질 등등은 인터넷이나 각종 책을 찾아보면 너무 잘 나와있으므로 생략하고, 도대체 사원수가 기하학적으로 무슨 뜻인지. 어떻게 회전이 일어나는 것인지에 대해 의미론적으로 혼자 정리해봤다. 일단 사원수는 다음과 같이 정의된다. 식(1) $$Q = q_0 + q_1*i + q_2*j + q_3*k$$ 위의 정의에서 i, j, k 는 허수이고 $q_0~q_3$ 는 실수이다. 즉, 허수부 3개와 실수부 1개로 이루어져 있다. 이것은 기하학적으로, Q가 단위 사원수 일때(Q 의 $q_0~q_3$ 으로 이루어진 벡터의 길이가 1) 다음과 같이 표현할 수 있다. 식(2) $$Q = sin(theta)*U + cos(theta)$$ 자아, 과연 식(1) 과 식(2) 모두 쿼터니언을 표현하는 거라는데 두 개가 겉보기엔 전혀 틀리구만 도대체 뭐가 같다는 걸까. 내가 헷갈렸던.. 식(2) 에서 U 는 벡터를 의미한다. 무슨 벡터인가 하면 사원수 Q로 어떤 점을 회전 변환 시킬 때 회전 축이 되는 단위...