2010-08-19 8 views
4

임의의 방향으로 배향 될 수 있지만 모두 서로 수직 인 좌표 축을 형성하는 3 개의 벡터 (vx, vy, vz) 및 3 개의 공간을 형성하는 3 차 벡터 (vx, vy, vz)가 주어집니다.쿼터니온 및 3 축

쿼터니온 q가 3D 벡터 (vx, vy, vz) 중 일부와 같은 방향 (또는 반대 방향)으로 회전되었는지 어떻게 확인할 수 있습니까?

답변

3

여기서 w는 "스칼라 파트"이고 qv = (x, y, z)는 "벡터 파트"인 경우, 다음과 같이 각도를 계산할 수 있습니다 (). qv와 기본 벡터 vx, vy, vz 각각 사이에 내적을 사용합니다.

COS (세타) = (QV 도트 VX)/(| QV | * | VX는 |)

COS (세타)이 +1 인 경우, Q의 회전축은 기저 벡터에 평행하다.

cos (theta) = -1은 반 평행 함을 의미합니다.

+0

음 ... 이것은 quaternion의 "w"구성 요소를 완전히 무시한 것입니다. 이 올바른지? – hasdf

+0

@ qutern : 맞아 ... 나는 당신의 질문을 오해하지 않았 으면 좋겠다! q를 단위 쿼터니언으로 정규화하면 w = cos (alpha/2)가 회전 각 α를 제공하고 (x, y, z)는 회전 축에있는 벡터입니다. 회전축 (x, y, z)가 베이시스 벡터 vx, vy, vz 중 하나와 평행한지 알아내는 방법을 묻고 있다고 가정합니다. 그렇다면 w는 계산에 필요하지 않습니다. –