How does one create a rotation about a given axis in $R^{3}$ from rotations about the other axes?

183 Views Asked by At

I was told that you can rotate a vector about a given axis in Cartesian space by combining rotations about the other two axes. I found a quick method for 90 degree rotations but I'm unsure how to generalise it for arbitrary angles?

The method for 90 degree rotations: e.g. you want to rotate a vector by 90 deg about the y-axis, then you rotate 90 deg about z-axis, 90 deg about the x-axis and then -90 deg about the z-axis.

1

There are 1 best solutions below

1
On

In order to rotate by $\theta$ around some axis denoted by $\hat{u}=[u_{x},u_{y},u_{z}]$ you can construct the following $3\times3$ matrix, where $c_{\theta}=\cos{\theta}$ and $s_{\theta}=\sin{\theta}$:

$$\mathbf{R}_{\hat{u}}\triangleq\begin{bmatrix}c_{\theta}+u_{x}^{2}(1-c_{\theta}) & u_{x}u_{y}(1-c_{\theta})+u_{z}s_{\theta} & u_{x}u_{z}(1-c_{\theta})-u_{y}s_{\theta} \\ u_{x}u_{y}(1-c_{\theta})-u_{z}s_{\theta} & c_{\theta}+u_{y}^{2}(1-c_{\theta}) & u_{y}u_{z}(1-c_{\theta})+u_{x}s_{\theta} \\ u_{x}u_{z}(1-c_{\theta})+u_{y}s_{\theta} & u_{y}u_{z}(1-c_{\theta})-u_{x}s_{\theta} & c_{\theta}+u_{z}^{2}(1-c_{\theta})\end{bmatrix}$$