# Rotation in spherical coordinates

1. Aug 27, 2013

### linda300

Hi guys,

This isn't really a homework problem but I just need a bit of help grasping rotations in spherical coordinates.

My main question is,

Is it possible to rotate a vector r about the y axis by an angle β if r is expressed in spherical coordinates and you don't want to convert r cartesian coordinates to do the rotation (just using 1 rotation matrix?

I've been searching the web for a while in hope for a simple explanation and a straight forward rotation matrix so I can play with it / test it and the only things I have found are based in cartesian coordinates.

Of course the y axis rotation is just an example for me to learn from but in this case.

I know that in cartesian coordinates the rotation matrix will be:

cos β.....0.....-sin β
0..........1.......0
sin β.....0......cos β

But you can only apply this to vectors which are represented in cartesian coordinates right? How can I write this rotation matrix in spherical coordinates so I can applying to a vector writing in sphereical coordinates?

Would anyone be able to give me a hand?

Edit:
The correct thing to do would be this right?

[Broken]

What I'm trying to ask is if there is an easier way?

Last edited by a moderator: May 6, 2017
2. Aug 28, 2013

### haruspex

Maybe I'm being dumb, but I don't understand what the vector on the right hand end of that equation represents. Is it supposed to be a position vector expressed in spherical coordinates? You can't write conversion to Cartesian in matrix form since it is not a linear transformation.
To get Cartesian coordinates from applying the rightmost matrix, the vector it's applied to would consist of (r, r, r)T.

Last edited by a moderator: May 6, 2017
3. Aug 28, 2013

### I like Serena

Hi linda!

The vector on the right hand would represent a vector in a local cartesian system. A system that is defined for a specific point in spherical coordinates. It changes when that point changes.

That transformation looks correct.
It would transform a localized vector to another localized vector after a rotation by an angle beta with respect to the y axis through the point where the vector is localized.
I do not see a way to significantly simplify that.

In advanced computer graphics, a typical way to simplify it (or rather reduce the amount of memory and number of operations to evaluate it), is by doing the same thing using octonions.
But I suspect that is not what you're looking for.

4. Aug 28, 2013

### haruspex

More thoughts...
You could do it very easily if you had a way to transpose the Cartesian coordinates while working only in polar form. Suppose you want to swap x and z. The new polar angles are θ', ϕ'.
sin θ cos ϕ = cos θ'
sin θ sin ϕ = sin θ' sin ϕ'
(whence tan ϕ = tan θ' sin ϕ')
cos θ = sin θ' cos ϕ'
So it's easy to find θ and ϕ from θ' and ϕ'.