On these pages we are looking for a more intuitive understanding of how rotations can be used to represent rotations and other transforms.

First a recap of how we represent rotations using quaternion algebra:

A rotation is represented by:

q = cos(a/2) + i ( x * sin(a/2)) + j (y * sin(a/2)) + k ( z * sin(a/2))

where:

- a=angle of rotation.
- x,y,z = vector representing axis of rotation.

Rotations are combined by multiplying the quaternions representing them:

q2*q1

where:

- q1 = quaternion representing first rotation.
- q2 = quaternion representing second rotation.
- q2*q1 = quaternion representing a single rotation equivalent to applying q1 then q2.

A point is transformed using this formula:

Pout = q * Pin q'

This is about all we need to know to model rotations in purely algebraic terms.

However this does not explain why it works, its very difficult to get an intuitive understanding of why quaternion equations are able to represent their corresponding physical rotations.

There are a number of ways to relate the algebra of quaternions to the geometry:

- As a modification to axis-angle representation.
- As a double reflection
- As a subset of 4D space

I think all of these ways help us understand what is going on a bit better but, for me, there is no one idea that gives the best intuitive understanding of why the above equations work.

An alternative way to get an intuitive understanding might be to relate quaternion operations to vector cross and dot products, which are more easily understood in geometric terms. A quaternion can be thought of as consisting of a scalar and a vector. We can form the scalar part from the dot product of two vectors and the vector part from the cross product:

q = (s,v) = (v1•v2 , v1 × v2)

This looks like a promising way to define q in terms of the angle between v1 and v2, see angle between vectors (twice the angle because of the way that quaternions are defined).

But then when we try to use the sandwich product to transform a vector things get more messy, this uses uses a product which is not a dot or cross product but is just shown by putting the operands next to each other:

Vout = q Vin q*

To define this type of multiplication in terms of dot and cross products we have to use:

(s1,v1)(s2,v2) =(s1 s2 - v1•v2 , v1 × v2 + s1 v2 + s2 v1)

Its hard to think of an intuitive way to understand this, so I'm not sure this approach helps?