Rotating a Unit Vector in 3D Using Quaternions
Rotating a Unit Vector in 3D Using Quaternions
A quaternion is a vector in with a noncommutative product (see [1] or Quaternion). Quaternions, also called hypercomplex numbers, were invented by William Rowan Hamilton in 1843. A quaternion can be written or, more compactly, or , where the noncommuting unit quaternions obey the relations ===ijk=-1.
4
q=w+xi+yj+zk
(w,x,y,z)
w,
r
2
i
2
j
2
k
A quaternion can represent a rotation axis, as well as a rotation about that axis. Instead of turning an object through a series of successive rotations using rotation matrices, quaternions can directly rotate an object around an arbitrary axis (here ) and at any angle . This Demonstration uses the quaternion rotation formula '=q with =0,, a pure quaternion (with real part zero), , normalized axis =·, and for a unit quaternion, ==, where the quaternion conjugate for is =(a,-b,-c,-d).
u
1
u
2
α
p
1
p
1
-1
q
p
1
u
1
q=cos,sin
α
2
u
3
α
2
u
3
u
1
u
2
u
1
u
2
-1
q
-1
q
-
q
p=(a,b,c,d)
-
p