This document can be viewed properly only in modern browsers with good support for CSS2 and the full HTML character set.
To understand this, you will need knowledge of basic linear algebra, such as is often taught in a university second-year algebra course.
Two orthogonal coordinate systems X and Y are related by a transformation of bases B by
otherwise expressed as a similarity transformation of Y:
In three dimensions, with respect to a given basis, each of the above coordinate systems and bases can be represented as a 3 × 3 matrix, and all the calculations can be done directly.
A problem arises when one coordinate system is to be continuously moved to another, as with a jet fighter, a spacecraft, or in a 3-D video game. Instead of B in the above, write B(s) where B is a continuous matrix function of s between 0 and 1, and B(0) is the identity.
There is in fact a path between any two coordinate systems for which the transformation is well behaved... but what is it?
One obvious path would be a linear interpolation between the two coordinate systems. Of course, even if B(0) and B(1) are invertible, there may be a value of s such that B(s) is not invertible.
Another approach is to first map the parameter s to a two-dimensional set of angles, which are then used to calculate the directions of the axes. This avoids the transformation B becoming singular, but the map itself introduces a different problem. It is not possible to continuously map a portion of a 2-D plane onto the whole sphere in a 1-to-1 fashion.
The quaternions, however, are a division ring: any non-zero quaternion has an inverse. And multiplication by a unit quaternion corresponds to a change of orientation, which may be viewed as a change of coordinate systems.
The trick is to pack each 3-vector into a quaternion, and convert that to another quaternion by multiplications.
Such transformation will not present any problem along any path q(s) that avoids the origin. For the simplest kind of path — a linear path — that is very easy to check: the two end points must not be negative real multiples of one another.
(This is the practicality of the question “are there any 3-dimensional division rings”: it would be really nice to handle the problem all in 3-D, but that is in fact impossible.)
With the block matrix forms for left- and right-multiplication given in quaternions as matrices, right multiplication by q = ( t, v ) followed by left multiplication by its conjugate is represented by
|
= |
| . |
Since the inverse of a quaternion is its conjugate divided by the square of its norm, the matrix representing the transformation of x to q−1 x q is represented by
T = I − 2 t |( t, v )|−1 |
|
The case for a multiplication by a quaternion on the right is the same, except with the “−” replaced by a “+”. Now, the cross product v × acts on another vector to produce a vector perpendicular to the first two, in the direction indicated by the right-hand rule. Thus right multiplication by a quaternion is identified with a change of 3-D coordinates with a twist following the right-hand rule, and multiplication by a quaternion on the left is identified with left-hand twist.
Note that the lower right 3-D block of this transformation is a rotation about a vector ( 0, v ), which is a fixed point of T.
Some connection from the cross-product in the above expressions and a rotation is provided by a general relation between skew-symmetric transforms and rotations of any vector space.
If S is any skew-symmetric transformation (that is, ST = −S), then there is a rotation R such that
Since the non-zero eigenvalues of S are all pure imaginary, it is possible to solve for R in terms of S.
The right side of this expression was studied by Cayley. It is formally related to the fractional transformation of complex analysis.
A key fact required to perform the manipulations here is that if A is any invertible transformation of the space, then A commutes with (A + I)−1,
Now, the operator v × above, acting on 3-space, is skew-symmetric. So it corresponds directly to a rotation as given by this fractional transformation.
The reverse problem is to determine the quaternion q = ( t, v ) from the transformation matrix T.
An effective calculation of v (in the case of coordinate systems of the same handedness) follows from the observation that it is the vector whose representation is the same in both coordinate systems, that is, a 3-vector b for which
that is to say, an eigenvector corresponding to eigenvalue 1 of the matrix B. That can be calculated easily by various means, such as a QR decomposition. This eigenvector will be well defined, provided B is not the identity matrix.
The vector b will then have the right direction. The value of t is just
Finally, to find the multiplier s of b apply T to a vector d that is perpendicular to b
If the two coordinate systems are of opposite handedness, there is no such vector v; instead there is a vector whose representation in one system is the negative of that in the other, that is, an eigenvector corresponding to the eigenvalue −1.