Rotating a Unit Vector in 3D Using Quaternions
A quaternion is a vector in with a noncommutative product (see  or Quaternion (Wolfram MathWorld)). 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 .[more]
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 with , a pure quaternion (with real part zero), , normalized axis , and for a unit quaternion, , where the quaternion conjugate for is .[less]
 Wikipedia. "Quaternions and Spatial Rotation." (Feb 9, 2016) en.wikipedia.org/wiki/Quaternions_and_spatial _rotation.