Rodrigues' rotation formula
In the theory of three-dimensional rotation, Rodrigues' rotation formula, named after Olinde Rodrigues, is an efficient algorithm for rotating a vector in space, given an axis and angle of rotation. By extension, this can be used to transform all three basis vectors to compute a rotation matrix in, the group of all rotation matrices, from an axis–angle representation. In terms of Lie theory, the Rodrigues' formula provides an algorithm to compute the exponential map from the Lie algebra to its Lie group.
This formula is variously credited to Leonhard Euler, Olinde Rodrigues, or a combination of the two. A detailed historical analysis in 1989 concluded that the formula should be attributed to Euler, and recommended calling it "Euler's finite rotation formula." This proposal has received notable support, but some others have viewed the formula as just one of many variations of the Euler–Rodrigues formula, thereby crediting both.
Statement
If is a vector in and is a unit vector describing an axis of rotation about which rotates by an angle according to the right hand rule, the Rodrigues formula for the rotated vector isThe intuition of the above formula is that the first term scales the vector down, while the second skews it toward the new rotational position. The third term re-adds the height that was lost by the first term.
An alternative statement is to write the axis vector as a cross product of any two nonzero vectors and which define the plane of rotation, and the sense of the angle is measured away from and towards. Letting denote the angle between these vectors, the two angles and are not necessarily equal, but they are measured in the same sense. Then the unit axis vector can be written
This form may be more useful when two vectors defining a plane are involved. An example in physics is the Thomas precession which includes the rotation given by Rodrigues' formula, in terms of two non-collinear boost velocities, and the axis of rotation is perpendicular to their plane.
Derivation
Let be a unit vector defining a rotation axis, and let be any vector to rotate about by angle, producing the rotated vector.Using the dot and cross products, the vector can be decomposed into components parallel and perpendicular to the axis,
where the component parallel to is called the vector projection of on,
and the component perpendicular to is called the vector rejection of from :
where the last equality follows from the vector triple product formula: . Finally, the vector is a copy of rotated 90° around. Thus the three vectors form a right-handed orthogonal basis of, with the last two vectors of equal length.
Under the rotation, the component parallel to the axis will not change magnitude nor direction:
while the perpendicular component will retain its magnitude but rotate its direction in the perpendicular plane spanned by and, according to
in analogy with the planar polar coordinates in the Cartesian basis, :
Now the full rotated vector is:
Substituting or in the last expression gives respectively:
Matrix notation
The linear transformation on defined by the cross product is given in coordinates by representing and as column matrices:That is, the matrix of this linear transformation is the cross-product matrix:
That is to say,
The last formula in the previous section can therefore be written as:
Collecting terms allows the compact expression
where
is the rotation matrix through an angle counterclockwise about the axis, and the identity matrix. This matrix is an element of the rotation group of, and is an element of the Lie algebra generating that Lie group.
In terms of the matrix exponential,
To see that the last identity holds, one notes that
characteristic of a one-parameter subgroup, i.e. exponential, and that the formulas match for infinitesimal.
For an alternative derivation based on this exponential relationship, see exponential map from to . For the inverse mapping, see log map from to .
The above result can be written in index notation as follows. The elements of the matrix for an active rotation by an angle about an axis are given by
Here,,, and label the Cartesian components or, and are the Kronecker and Levi-Civita symbols, and there is an implicit sum on repeated indices.
More explicitly, its entries are given by:
where
and
The Hodge dual of the rotation is just which enables the extraction of both the axis of rotation and the sine of the angle of the rotation from the rotation matrix itself, with the usual ambiguity,
where. The above simple expression results from the fact that the Hodge duals of and are zero, and.