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 SO(3), the group of all rotation matrices, from an axis–angle representation. In terms of Lie theory, this Rodrigues' formula provides an algorithm to compute the exponential map from the Lie algebra so(3) to its Lie group SO(3). 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 v is a vector in ℝ3 and k is a unit vector describing an axis of rotation about which v rotates by an angle θ according to the right hand rule, the Rodrigues formula for the rotated vector vrot is
The intuition of the above formula is that the first term scales the vector down, while the second skews it (via vector addition) toward the new rotational position. The third term re-adds the height (relative to k {\displaystyle {\textbf {k}}} ) that was lost by the first term. An alternative statement is to write the axis vector as a cross product a × b of any two nonzero vectors a and b which define the plane of rotation, and the sense of the angle θ is measured away from a and towards b. 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
k = a × b | a × b | = a × b | a | | b | sin α . {\displaystyle \mathbf {k} ={\frac {\mathbf {a} \times \mathbf {b} }{|\mathbf {a} \times \mathbf {b} |}}={\frac {\mathbf {a} \times \mathbf {b} }{|\mathbf {a} ||\mathbf {b} |\sin \alpha }}\,.}
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 k be a unit vector defining a rotation axis, and let v be any vector to rotate about k by angle θ (right hand rule, anticlockwise in the figure), producing the rotated vector v rot {\displaystyle \mathbb {v} _{\text{rot}}} . Using the dot and cross products, the vector v can be decomposed into components parallel and perpendicular to the axis k,
v = v ∥ + v ⊥ , {\displaystyle \mathbf {v} =\mathbf {v} _{\parallel }+\mathbf {v} _{\perp }\,,}
where the component parallel to k is called the vector projection of v on k,
v ∥ = ( v ⋅ k ) k {\displaystyle \mathbf {v} _{\parallel }=(\mathbf {v} \cdot \mathbf {k} )\mathbf {k} } , and the component perpendicular to k is called the vector rejection of v from k:
… excerpt ends here. Continue reading the full article.



