Rotation in spherical coordinates

linda300
Messages
59
Reaction score
3
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?




What I'm trying to ask is if there is an easier way?
 
Last edited by a moderator:
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:
Hi linda! :smile:

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.
 
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 ϕ'.
 

Similar threads

  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
Replies
3
Views
3K
Replies
4
Views
3K
  • · Replies 7 ·
Replies
7
Views
3K
Replies
33
Views
5K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K