# Rotation matrix in spherical coordinates

When given arbitrary point on a unit sphere $a = (\theta, \phi)$ and an arbitrary axis $\vec{A}=(\Theta, \Phi)$, can we have an algebraic expression for $a_1=(\theta_1, \phi_1)$ which is a rotation of $a$ around $\vec{A}$ to the angle $\beta$?

Points and axes are not on the coordinate planes, values are not trivial: $\theta \neq 0$, $\phi \neq 0$, $\Theta \neq 0$, $\Phi \neq 0$, $\beta \neq 0$.

Can this be done without transformation through Cartesian? Otherwise the analytic form becomes too complicated. If there is a particular case for $\Phi \rightarrow 0$ ($\sin{\Phi} \approx \Phi$, but not for the other values) it is also fine.

Thanks

• I find the exponential notation (ie in terms of the Lie group elements for the system in question) to be the most enlightening. – R. Rankin Dec 10 '18 at 4:28

I think what you might be looking for is Rodrigues' Rotation Formula. Using spherical coordinates:

Your arbitrary point on the unit sphere is: $$\mathbf{a} = (\sin\theta\cos\phi, \sin\theta\sin\phi, \cos\theta)$$

Your arbitrary axis is represented by the unit vector: $$\hat{\mathbf{k}} = (\sin\Theta\cos\Phi, \sin\Theta\sin\Phi, \cos\Theta)$$

Then the result of rotating $\mathbf{a}$ around $\hat{\mathbf{k}}$ by the angle $\beta$, using the right-hand-rule, is given by

$$\mathbf{b} = \cos\beta\,\mathbf{a} + \sin\beta\,(\hat{\mathbf{k}} \times \mathbf{a}) + (\hat{\mathbf{k}}\cdot\mathbf{a})(1-\cos\beta)\,\hat{\mathbf{k}}$$

Of course, now $\mathbf{b}$'s Cartesian coordinates need to be converted to spherical: $$\tan\phi' = \frac{b_y}{b_x} \qquad\mbox{and}\qquad \tan\theta' = \frac{\sqrt{b_x^2 + b_y^2}}{b_z}$$ so that $$\mathbf{b} = (\sin\theta'\cos\phi', \sin\theta'\sin\phi', \cos\theta')$$

The same article on Rodrigues' Formula also discusses a matrix representation of the rotation operation in question.

• Thanks a lot, exactly what I needed. The matrix representation is much cleaner, IMO. – Anonymous Mar 11 '18 at 3:48

Rotations in spherical coordinates are affine transformations so there isn't a matrix to represent this on the standard basis $(\theta,\phi)$, you'll need to introduce another coefficient here: $(\theta,\phi,1)$, the rotation matrix in the $\theta$ direction is then, for example, rotating by $\alpha$ is;
$R(\alpha) = \left( \begin{array}{ccc} 1 & 0 & \alpha \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right)$

• Ok, thanks, and what about the axis of rotation? shoudn't it go somehow into the matrix terms? – Andrew Nov 13 '14 at 11:55

In this post I explain how to deal when the rotation axis is one of the Cartesian axes.

For an abritrary rotation axis $\vec{A}=(\Theta,\Phi)$, using the same notations, the formula is $$(\theta', \phi') = (Q^{-1} \circ R_{\vec{A}}(\beta) \circ Q)(\theta,\phi)$$ where the rotation operator $R_{\vec{A}}(\beta)$ is $$R_{\vec{A}}(\beta) = R_z(\Phi)R_y(\Theta)R_z(\beta){R_y(\Theta)}^\dagger{R_z(\Phi)}^\dagger$$ ("${}^\dagger$" is the notation for the conjugate transpose).