Rodrigues' rotation formula
From Wikipedia, the free encyclopedia
In geometry, Rodrigues' rotation formula is a vector formula for a rotation in space, given its axis.
Say u,v R3 and we want to obtain a representation for the rotation vrot of the vector v around the vector u (which is assumed to have unit length) by an angle θ in the counterclockwise (i.e. positive) direction. Rodrigues' formula reads as follows:
vrot = v·cosθ + u×v·sinθ + <u,v>u·(1 - cosθ)
[edit] Proof of the formula
Take the vector w = v - <u,v>u, which is the projection of v on the plane orthogonal to u, and the cross product of the vectors u and v: z = u×v. Turn the vector w by the angle θ around the base of the vector u to obtain the projection of the rotated vector vrot:
wrot = w·cosθ + z·sinθ = (v - <u,v>u)·cosθ + u×v·sinθ.
Notice that both the vectors w and z have the same length: |w|,|z| = |v - <u,v>u|, because the vector u is of unit length. To get the rotated vector v, we have to add back the adjustment <u,v>u. Hence
vrot = (v - <u,v>u)·cosθ + u×v·sinθ + <u,v>u =
v·cosθ + u×v·sinθ + <u,v>u·(1 - cosθ) ,
what is exactly what we were looking for.
[edit] External links
For another descriptive example see www.d6.com, Chris Hecker, physics section, part 4. "The Third Dimension" -- on page 3, section ``Axis and Angle, http://www.d6.com/users/checker/pdfs/gdmphys4.pdf