Rodrigues' rotation formula

Rotation about an arbitrary axis is represented by a rotation matrix
, where $\mathbf{n} = [n_1, n_2, n_3]$ is an arbitrary axis of rotation and $\theta$ is a rotation angle
This representation is called Rodrigues' rotation formula.

Proof

Let $C$ be a coodinate system whose origin is $O$, $P$ be an arbitray position, $Q$ be the position obtained by rotating $P$ around an arbitrary axis $\mathbf{n}$ by a rotation angle $\theta$, and $O'$ be the projected position of $P$ onto $\mathbf{n}$. (See figure below.)
Let $\mathbf{e}'_{x}$ be a unit vector parallel to $\overrightarrow{O'P}$,
and $\mathbf{e}'_{y}$ be a vector orthogonal to $\mathbf{e}'_{x}$ and $\mathbf{n}$.
$\{ \mathbf{e}'_{x}, \mathbf{e}'_{y}, \mathbf{n} \}$ is an orthonormal basis of the three dimensinonal space.
Since $\theta$ is the rotation angle between $\overrightarrow{O'Q}$ and $\mathbf{e}'_{x}$ , $\overrightarrow{O'Q}$ can be represended as
The length of $\overrightarrow{O'Q}$ is equal to that of $\overrightarrow{O'P}$, i.e.,
, because $\overrightarrow{O'Q}$ is obtained by rotaion of $\overrightarrow{O'P}$ around $\mathbf{n}$. Therefore, we have
By substituing $(1)$ into this equation, we have
As
, $\overrightarrow{O'Q}$ can be written as
As stated above, $O'$ is a projection of $P$ onto $\mathbf{n}$, i.e.,
Therefore we have
By substituing $(2)$ into this equation, we have
By substituing $(1)$ into this equation, we have
Substituing $(4)$ into this equation, we have
Here
because $\mathbf{n}$ is parallel to $\overrightarrow{OO'}$. Therefore we have
As
, we have
Substituing $(4)$ into this equation, we have
If we rewrite $\overrightarrow{OP}$ as $\mathbf{r}$ and $\overrightarrow{OQ}$ as $\mathbf{r}'$, this equation is expressed as
This expression is called Rodrigues' rotation formula. We will derive its matrix representation below.
We express the inner product in the second term of $(5)$ as
and $i$-th element of the cross product in the third term as
, where $\epsilon_{ijk}$ is Levi-Civita symboll defined as
The $i$-th element of the expression $(4)$ can be written as
Here, using Kronecker delta
, $\mathbf{r}_{i}$ can be written as
Therefore we have
By defining a matrix $R$ as
, we see that $\mathbf{r}'$ is obtained by operating $R$ on vector $\mathbf{r}$, i.e.,
Specifically, each element of R is
, and representing in the form of matrix,
This is the matrix version of Rodrigues' rotation formula, which is used to represent a rotated position by a position before rotation.
Example: Rotaion around the third axis
If the rotation axis is the thrid axis, i.e.,
the rotation matrix, by using the above formula, is