Easy way to derive rotation matrix

It is very easy to derive rotation matrix.
This method is applied to general cases.

Derivation

Step1. Calculate rotation of unit vectors

Calculate rotation of unit vector of $x$ axis by $\theta$
\begin{align}
\left(
\begin{array}{c}
1\\
0
\end{array}
\right)
%
\overset{\text{Rotate by }\theta}{\longrightarrow}
%
\color{blue}{
\left(
\begin{array}{c}
\cos\theta\\
\sin\theta
\end{array}
\right)
}
\end{align}

Same way , rotate unit vector of $y$ axis
\begin{align}
\left(
\begin{array}{c}
0\\
1
\end{array}
\right)
%
\overset{\text{Rotate by }\theta}{\longrightarrow}
%
\color{red}{
\left(
\begin{array}{c}
-\sin\theta\\
\cos\theta
\end{array}
\right)
}
\end{align}
f:id:IsThisAPen:20170103224421p:plain

Step2. Arrange two vectors

Just arrange these two vectors and we got Rotation Matrix!
\begin{align}
\left(
\begin{array}{cc}
\color{blue}{\cos\theta}&\color{red}{-\sin\theta}\\
\color{blue}{\sin\theta}&\color{red}{\cos\theta}
\end{array}
\right)
\end{align}

Background: Why can we derive?

What we have to know is following simple property:

Useful property of matrix
Any matrix $M$ can be written as \begin{align} M=(Me_1,...,Me_n), \end{align} where \begin{align} e_i= \left( \begin{array}{c} 0 \\ \vdots \\ 1\\ \vdots \\ 0 \end{array} \right) (i~~~ \end{align} is a unit vector.

From this fact, we can derive any matrix by calculating transformation of each unit vectors.

Proof.
Let $(Me_i)_j$ be the $j$-th element of the vector $Me_i$.
Then $(Me_i)_j=\sum_{k=1}^n M_{jk}(e_i)_k=M_{ji}$.
Where, we use
\begin{align}
(e_i)_k=\delta_{ik}=
\begin{cases}
\,1& (k=i)\\
\,0& (k\neq i)
\end{cases}.
\end{align}
($\delta_{ik}$ is called Kronecker delta.)