Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[질문] 쿼터니언과 회전이 어떻게 다른가요?

402 views
Skip to first unread message

Eretech

unread,
Apr 26, 1999, 3:00:00 AM4/26/99
to

프로그램짤때 x,y,z축을 이용한 회전 행렬을 주로 사용했는데
쿼터니언을 사용한 회전이 더 쉽다고(맞나??)하더군요.

쿼터니언의 개념과 구하는 방법을 회전행렬과
비교해 알려주세요.

저는 쿼터니언을 모르고서는 이 힘든 IMF를 이겨 나갈수
없을 지도 모릅니다.

꼭 알려주세요.

그럼..

메일이라면
ere...@chollian.net


Min-Ho Ahn

unread,
Apr 26, 1999, 3:00:00 AM4/26/99
to
더 쉬운지는 모르겠지만..
quaternion이라는 건 a0 + a1 i + a2 j + a3 k, 이런 형태로 표기합니다.
여기서 i*i = j*j = k*K = -1, i*j = k 등등의 규칙이 있습니다.

quaternion중에서 크기가 1인 unit quaternion이라는 놈이 회전변환을
나타냅니다.
크기가 1인 quaternion 이라면 cos(t/2) + sin(t/2) q 라는 형태로 표시가
가능한데,
이때, q는 real part가 없는 놈입니다.
이놈은 q방향을 회전축으로 하고 오른나사의 법칙으로 t만큼의 회전을
표시합니다.
quaternion이 좋은 이유는 회전변환들을 합성할때 좋다는 것이지요.
두 unit quaternion을 곱하면 회전변환 두개를 합성한 놈이 나온다는 거죠..

제 이야기만 듣고는 뭔 소린지 모르실테니, 도서관혹은 서점에 가서
Graphics에 대한 책들중에 뒤져보십시요. quaternion을 다루고 있는
책들도 꽤 있습니다.

Lee, Gee Man

unread,
Apr 27, 1999, 3:00:00 AM4/27/99
to

Quaternion은 3차원 회전을 다루는 방법입니다. (notation)
_ _
정의는 q = (s, v)
s는 scala part, v는 vector part
단위 quaternion은 _ _
s = cos(theta/2) , v = u sin(theta/2)
여기서 theta는 회전각, u 는 회전축 vector.

조금 어설프게 정리했지만 참조하세요.
http://eps01.iae.re.kr/gmlee/math/quaternion.hwp

Eretech

unread,
Apr 28, 1999, 3:00:00 AM4/28/99
to

Lee, Gee Man 이(가) <01be9051$92217710$bf5385a5@narak> 메시지에서 작성하였습니다...

답변 무지 감사합니다.
근데.. 위 사이트에 접속이 안되네요..
어쩐다지요...

메일로 보내주시면 안될까요?
그럼..


Eretech

unread,
Apr 29, 1999, 3:00:00 AM4/29/99
to

Lee, Gee Man 이(가) <01be9051$92217710$bf5385a5@narak> 메시지에서 작성하였습니다...
>
>Quaternion은 3차원 회전을 다루는 방법입니다. (notation)
> _ _
>정의는 q = (s, v)
> s는 scala part, v는 vector part
>단위 quaternion은 _ _
> s = cos(theta/2) , v = u sin(theta/2)
> 여기서 theta는 회전각, u 는 회전축 vector.
>
>조금 어설프게 정리했지만 참조하세요.
>http://eps01.iae.re.kr/gmlee/math/quaternion.hwp
>
>

오늘 아침에 받았읍니다.
열심히 공부해 봐야쥐.

답변주신 분들 감사합니다.


Dong-Hwa Oh

unread,
Jun 7, 1999, 3:00:00 AM6/7/99
to
On 27 Apr 1999 01:57:23 GMT, Lee, Gee Man <gm...@iae.re.kr> wrote:
>
>Quaternion은 3차원 회전을 다루는 방법입니다. (notation)
> _ _
>정의는 q = (s, v)
> s는 scala part, v는 vector part
>단위 quaternion은 _ _
> s = cos(theta/2) , v = u sin(theta/2)
> 여기서 theta는 회전각, u 는 회전축 vector.
>
>조금 어설프게 정리했지만 참조하세요.
>http://eps01.iae.re.kr/gmlee/math/quaternion.hwp
>
>

Quoternion을 그런식으로 정의 할 수도 있지만 조금 다르게도 정의 할 수 있습니다.
일단 Pauli spin matrix을 \sigma_i (i=1,2,3)를 정의하고

| 0 1 | | 0 -i | | 1 0 |
\sigma_1 = | | \sigma_2 = | | \sigma_3 = | |
| 1 0 | | i 0 | | 0 -1 |

이놈들중 두개를 곱하면 다음과 같이 됩니다.

\sigma_i \sigma_j = \delta_{ij} + i \epsilon_{ijk} \sigma_k

이제 quoternion q를 (Einstein convention을 쓰면) 아래처럼 정의 할 수도
있습니다.

q = q_0 + i q_j \sigma_j

이때 q는 complex 2 dimensional 2 by 2 martix입니다. (흔히 spinor라고 이야기
합니다.)

여기에 특별한 조건을 부여하면 quoternion은 unitary matrix가 됩니다. 또 이놈들
은 group이 되는데 소위 SU(2)라고 부릅니다. SU(2)는 real 3 dimensional rotation
의 group인 O(3)와 locally homeomorphic하기 때문에 가끔 특별한 용도로
O(3)의 rotation matrix대신 사용되지만, 서로 다른 space위에서 정의 되기 때문에
주의를 요합니다.

0 new messages