Quaternions
- The quaternions, devised by Hamilton (1843), generalize complex numbers.
- H = {a 1 + b i + c j + d k | a,b,c,d ∈ R},
where
i2 = j2
= k2 = ijk = -1,
- from which it follows that
-
* 1 i j k 1 1 i j k i i -1 k -j j j -k -1 i k k j -i -1 - (note, multiplication is non-commutative)
- and
- (a+bi+cj+dk) (A+Bi+Cj+Dk) = (aA-bB-cC-dD) + (aB+bA+cD-dC)i + (aC-bD+cA+dB)j + (aD+bC-cB+dA)k.
-
- Suppose q = a + bi + cj + dk; q may also be written (a, b, c, d); define
- conjugate( q ) = q* = a - bi - cj - dk,
- norm( q ) = ||q|| = √( q q* ) = √( a2 + b2 + c2 + d2 ),
- inverse( q ) = q-1 = q* / ||q||2,
- norm( q ) = ||q|| = √( q q* ) = √( a2 + b2 + c2 + d2 ),
- e.g.,
- Note that
- (p q)* = q* p*,
- ||p q|| = ||p|| ||q||, and
- (p q)-1 = q-1 p-1.
- ||p q|| = ||p|| ||q||, and
Vectors
- A 3-D vector, v, can be mapped to, and from, a quaternion with zero real-part:
- V2Q(<vx,vy,vz>) = (0,vx,vy,vz).
Rotations
- The rotation of a 3-D vector, v, by angle, θ, about the axis specified by the unit vector, n, is
-
- rotation(θ, n) =
- let q = cos θ/2
+ (nx sin θ/2) i
+ (ny sin θ/2) j
+ (nz sin θ/2) k
- in function( v ) Q2V( q V2Q(v) q-1 )
- rotation(θ, n) =
- This gives three degrees of freedom when choosing a rotation: θ, and <nx, ny, nz> subject to nx2 + ny2 + nz2 = 1.
- e.g.,