2012-04-19 5 views
5

벡터 쌍을 가지고 있습니다. 하나에서 다른쪽으로 회전하는 쿼터니언은 어떻게 만들 수 있습니까?쿼터니언을 두 벡터 사이에서 회전시키기

+0

가능한 복제본 [한 벡터에서 다른 벡터로의 회전을 나타내는 쿼터니언 찾기] (http://stackoverflow.com/questions/1171849/finding-quaternions-representing-the-rotation-from-one-vector-to-another) – Boann

답변

9

단위 쿼터니언 Q = COS (F) + U * 죄 (F)의 축 U 대한 각도 2 의해 벡터 V의 회전 * F를 나타낸다.

당신의 벡터 V 및와트 을 인 경우에, 우리는 그들을 정상화, 다음 2 * F = ARCCOS (도트 (V,w ))로 사이의 각도를 계산합니다. 회전 축 방향 벡터 u = 정규화 (VectorProduct (v, w)). 이제 필수 회전 쿼터니온을 만들 수 있습니다.

+1

2 단위 벡터의 외적이 직교 입력 벡터에 대해서만 정규화되므로 단위 쿼터니온을 유지하기 위해 계산 된 후 회전 축을 표준화하는 것이 좋습니다. –

+0

@Christian Rau 맞아, 나는이 정규화를 놓쳤다. 추가됨. – MBo

+4

v = -w의 경우 특수 처리가 필요합니다. –

관련 문제