1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Co-ordinate systems and velocities

  1. Jul 7, 2009 #1
    Can anyone help explain how to convert velocities to different co ordinate systems? I've always been shocking at converting between co ordinate systems as it is.

    I know that converting from Cartesian to Cylindrical for positions it is:

    r = sqrt(x^2 + y^2)
    theta = atan(y/x)
    z = z

    and back its:

    x = rcos(theta)
    y = rsin(theta)
    z = z

    However, I'm getting confused as to what it would be for velocities.

    What I've got so far is:

    vx = vtheta * sin(theta) * sign(y)
    vy = vtheta * cos(theta) * sign(-x)
    vz = vz

    Am I doing the right kind of thing or am I overcomplicating things? Any help would be greatly appreciated!!
  2. jcsd
  3. Jul 7, 2009 #2
    What is "vtheta'?

    x is a function of two variables, r and theta and these are both functions of time, in general.

    dx/dt=(dr/dt)cos(theta)-r sin(theta) d(theta)/dt
    and similar for y.

    dr/dt is the radial speed and d(theta)/dt is angular speed.
  4. Jul 7, 2009 #3
    vtheta is the rotational velocity
  5. Jul 8, 2009 #4


    Staff: Mentor

    Hi Spanky,

    I think you are overcomplicating things. If you have any vector in Cartesian coordinates then to transform it to Cylindrical coordinates you use
    r = sqrt(x^2 + y^2)
    theta = atan(y/x)
    z = z

    That part is easy. What is more challenging is determining the velocity vector in Cylindrical coordinates if you have a position in Cylindrical coordinates as a function of time. For that, see the "time derivatives of the vector" section here: http://mathworld.wolfram.com/CylindricalCoordinates.html

    v = (r', r theta', z')
  6. Jul 8, 2009 #5
    I think I'm getting muddled up with different co-ordinate systems, rotational velocities and the spin dependence of elephants when eating carrot sticks.

    Looking at everything again, I basically need to be able to convert between azimuthal and radial velocities and x and y velocities for a body rotating around another body. Its all basically a mess of those diagrams I had to draw at school working out different angles and their dependence on each other, which I sucked donkey doo doo at.

    I basically need to convert backwards and forwards between azimuthal and radial components of force and velocity to Cartesian co-ordinates. The origin is at (0,0).

    So I guess I need something like this for anticlockwise motion:
    theta = (y/x)
    vx = (v_azimuthal * sin(theta) * sign(-y)) + (v_radial * cos(theta) * sign(x))
    vy = (v_azimuthal * cos(theta) * sign(x)) + (v_radial * sin(theta) * sign(y))
    vz = vz

    Then the same should be true for forces I think. For clockwise motion the first sign functions of vx and vy would need to be sign(y) and sign(-x) respectively I think. I think those equations are right, if a bit complex. Now though, I need to work out a way to get v_azimuthal and v_radial from vx and vy, i.e. the other way around.
  7. Jul 8, 2009 #6


    Staff: Mentor

    If you have any vector in Cartesian coordinates and you want to express it in Cylindrical coordinates then you use:

    r = sqrt(x²+y²)
    theta = atan(y/x)
    z = z

    If you have any vector in Cylindrical coordinates and you want to express it in Cartesian coordinates then you use:

    x = r cos(theta)
    y = r sin(theta)
    z = z

    It makes no difference whatsoever what the units are nor whether the vector represents position, acceleration, velocity, momentum, etc.

    The only trick comes if you have a position as a function of time in Cylindrical coordinates and you want to find the velocity or acceleration as a function of time in the Cylindrical coordinates without converting to and from Cartesian. Then you use the formulas I linked to above.
  8. Jul 8, 2009 #7


    User Avatar
    Homework Helper
    Gold Member

    Why are there sign functions in your expression?

    To find velocities you need only differentiate withe respect to time:

    [tex]v_x\equiv\frac{dx}{dt}=\frac{d}{dt}(r\cos\theta)=\frac{dr}{dt}\cos\theta-r\sin\theta\frac{d\theta}{dt}=v_r\cos\theta- v_{\theta}\sin\theta[/tex]

    To get [itex]v_y[/itex] and [itex]v_z[/itex] you just do the same thing to your expressions for [itex]y[/itex] and [itex]z[/itex]

    To get [itex]v_r[/itex] and [itex]v_{\theta}[/itex] in terms of Cartesians you just differentiate the expressions for [itex]r[/itex] and [itex]\theta[/itex] with respect to time:


    [tex]v_{\theta}\equiv r\frac{d\theta}{dt}=r\frac{d}{dt} \tan^{-1}\left(\frac{y}{x}\right)=\sqrt{x^2+y^2}\frac{d}{dt} \tan^{-1}\left(\frac{y}{x}\right)[/tex]

    OR you solve the 3 equations you got for v_x, v_y and v_z for v_r, v_theta and v_z the same way you would solve any system of 3 equations for 3 unknowns.
    Last edited: Jul 8, 2009
  9. Jul 8, 2009 #8
    So radial velocity would be vr = sqrt(vx^2+vy^2). However, for an orbiting body, radial velocity is largely zero, which with that equation would imply that vx and vy are both largely zero, which is not the case.

    The signs are because x and y become negative and the signs on the velocities need to be right.

    Sorry guys if I'm missing the point or I'm not explaining it well enough. Like I said, I really suck at angle conversions and co-ordinate systems etc.

    To try to explain things better, I'm attaching a sketch of what I'm trying to do:


    I basically start with information in the form x,y,z,vx,vy,vz. I then have to calculate a force for which the equations work in azimuthal and radial values and depend on the azimuthal and radial velocities (in the same units as vx,vy,vz). So I have to first convert vx and vy into rotational velocity and radial velocity. Then the resulting force has to be converted back to the force in x,y,z.

    So, vx,vy,vz,v_azimuthal,v_radial all have the same units (i.e. m/s). Theta is calculated by using y/x but since y/x changes sign depending on which quadrant it is in, I've added those sign modifiers to try to make things work.


    Edit: Right, I think I've worked out the formulae that I need so I'll post them up on here in case anyone else finds this via search and is as similarly lacking as I am in the angles and conversions departments!

    theta = atan(y/x)

    v_x = abs(v_radial*cos(theta))*sign(x) + abs(v_rotational*sin(theta))*sign(Cy)
    v_y = abs(v_radial*sin(theta))*sign(y) - abs(v_rotational*cos(theta))*sign(Cx)
    v_radial = abs(v_x*cos(theta))*sign(x) + abs(v_y*sin(theta))*sign(y)
    v_rotational = abs(v_x*sin(theta))*sign(Cy) - abs(v_y*cos(theta))*sign(Cx)

    where abs() denotes the absolute value (or modulus) of a number (i.e. -1.5623 -> 1.5623 and +1.2479 -> 1.2479) and sign() gives the sign of a number (i.e. 1.2435 -> 1 and -1.7829 -> -1).

    C is a sign factor depending on the direction of rotation. For anticlockwise motion, C is -1, for clockwise motion, C is 1. This is for a system where a body is rotating around another, which is at x = y = 0.

    There's probably an easier way of doing this but I'm not bright enough to work it out!
    Last edited: Jul 8, 2009
  10. Jul 8, 2009 #9


    Staff: Mentor

    Ahh, I think that is your problem. What you are talking about is the first derivative of the radius, not the radial component of the velocity. Assuming that you are talking about motion in the plane (z = 0) then the radial component of the velocity vector is the speed and assuming a uniform circular orbit then theta component of the velocity vector is 90 degrees from the theta component of the position. I am not sure if this is clearly written or not, but do you understand how, in cylindrical components, the velocity will not have a radial component of zero even in a perfectly circular orbit?
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook