Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Converting between coordinate systems?

  1. Jun 6, 2008 #1
    1. The problem statement, all variables and given/known data
    I have a bit of a general question, and I don't know whether or not the problem has a solution, but here's the idea behind it. I have two coordinate systems, let's call them CS A, and CS B. I have an infinite set of corresponding points for each system (both are 3D, so I have X, Y and Z data for each coordinate). So if I know a coordinate in CS A, I can find out the coordinate in CS B. The thing is, I don't know the actual transform that turns one system to the other (so I can use a 'function' but I don't know its definition). Given that I have an infinite set of points, is it possible to find the function definition? How would I go about doing it? (It is not a straight forward transform that is readily apparent, not just a translation... I'm sure there is rotation, might be flipping, etc).

  2. jcsd
  3. Jun 6, 2008 #2
    Do you mean converting between catresian (x,y,z), cylindrical (r,Θ,z), and spherical (p,Θ,Φ) co-ordinate systems?

    If so a point in cartesian is given by (x,y,z)

    A point in cylindrical is given by (r,Θ,z)

    A point in spherical is given by (p,Θ,Φ)

    Conversion of cylindrical to cartesian is (rcosΘ, rsinΘ, z)

    Conversion from spherical to cartesian is (pcosΦcosΘ, pcosΦsinΘ, psinΦ)

    I think that's what you mean.
  4. Jun 6, 2008 #3


    User Avatar
    Science Advisor

    What do you mean you "have an infinite number of points"? Do you mean that you know the coordinates of those points in each of the two coordinate systems?

    Whether it is possible to determine from knowing the coordinates of a number of points the relationship of the coordinate systems themselves depends a lot upon how "nice" the transfomation is and upon the specific points. For example, if you know the change is a rotation around the origin, then knowing the coordinates of just a single point in both systems would be enough- as long as that point was not the origin. If change were simply a stretch, perhaps by different factors, along the two coordinate axes, again a single point would be enough- as long as that point was not on one of the axes. On the other hand, knowing the coordinate change for every point on a single axis (an infinite number of points), but no other points, would not be enough.
  5. Jun 6, 2008 #4
    If you want to make a coordinate system, you need to define some base vectors first that form a right hand system, im pretty sure (not completely though). for example, you need to be able to express the unit vectors [tex] \vec{x}, \vec{y}, \vec{z} [/tex] into [tex] \vec{e_{1}}, \vec{e_{2}}, \vec{e_{3}}[/tex]. To do this, however, you must know the relationship between x, y, z and the new system. If its a rotation you can do this if you have the rotation of the new system from first coordinate system and simply project the coordinates. If its not a rotation this can get complicated. Once you have all of this information, you can then go on to define the area elements and volume elements using Jacobians. I hope this is what you're wondering about. If not, let me know and i will try to clean it up.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook