Rotation matrix in spherical coordinates

59.7k Views Asked by At

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

3

There are 3 best solutions below

1
On

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) $

1
On

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.

0
On

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).