[Math] Rotation matrix in spherical coordinates

rotationsspherical 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

Best Answer

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.

Related Question