2009-11-18 16 views
20

저는 오우거에서 일하고 있습니다.하지만 일반적인 쿼터니언 문제입니다.두 쿼터니온 사이의 '차이'

처음에는 회전 쿼터니언 Q1을 적용 할 대상이 있습니다. 나중에 다른 quaternion Q2로 객체를 처음 회전시킨 것처럼 만들고 싶습니다.

이미 Q1에 의해 회전 된 물체를 가져올 쿼터니언을 계산하고 Q2를 초기/기본 방향에 적용한 것처럼 정렬 할 수 있습니까? 나는 (들) lerping보고 있었는데, 이것은 오리진보다는 회전에 대해서만 유효한 경우 확실하지 오전?

+3

일부 답변을 올바른 것으로 표시하는 법에 대해 알려주십시오. 또한 수학 오버플로를 봐 ... (quaterions는 완전히 나를 미치게하고 btw와 sry는 대답을하지 못합니다.) –

답변

29

Q2의 Q1 시간의 역함수를 원하는 것처럼 들립니다. Q1의 역함수로 변형하면 오브젝트가 원래 프레임 (초기 방향)으로 회전 한 다음 Q2로 변형하면 새로운 방향으로 회전합니다.

쿼터니언의 표준 정의는 오른쪽에서 왼쪽으로 곱셈 순서로 변환을 적용하므로이 값을 Q = Q2 * Q1^{- 1}로 계산해야합니다. 그

21

생각합니다 방법 QInitial ^하여 양변 QTransition 풀기

QInitial * QTransition = QFinal 

{- 1} (^ {- 1} 인 쿼터니언 공액)

QTransition = QFinal * QInitial^{-1} 

그것은 단지 그거 쉽지.

  • 내 수학에 동의하지 않는 경우 제 대답에 대한 답변을 게시하고 수학을 변경하지 마십시오. 내가 아는 한, 그것이 옳다.
+0

이것은 오래된 주제를 되 살리고 있습니다 만, 왜 이것이 올바른 것입니까? 나는 이것이 코드에 의한 것이지만 매트릭스 회전이 내가 믿는 다른 방법으로 작동 하는지를 검증 할 수있다. 예 : MInitia를 제거하고 싶으면 MInitial^-1 * MInitial = Midentity 이후 왼쪽에서 MInitial^-1을 양측에 곱합니다. –

+1

쿼터니언의 "곱셈"은 행렬 곱셈과 같이 역순입니다. 웹에서 확실한 설명을 찾을 수는 없지만, 카이 퍼스의 "쿼터니언 및 로테이션 시퀀스"에 있다는 것을 알고 있습니다. (http://www.amazon.com/Quaternions-Rotation-Sequences-Applications-Aerospace/dp/0691102988) - 나는 당신이 그 책을 사러 가서 자신에게 증명해야한다고 말하지는 않는다.), 그렇지만 Matrix와 Quaternion 연산 명령의 차이점을 배웠습니다. – fbl

+0

응답 해 주셔서 감사합니다. 내가 몇시에 다시 붙이면 나는이 책을 사러 갈 것이지만 지금은 그것이 효과가 있다는 것이 행복하다. :) –