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

Spherical-esque Coordiante System

  1. Dec 6, 2006 #1
    Is there a generalization of the 2D or 3D spherical coordinate system to N-dimensions? I want to represent points in the space as a distance r from something, and then a bunch of angles. If this works for arbitrary dimensions, what's the rule for defining the newest angle each time I add a dimension?

    In case that's not clear, what I want to know is, if I have a point in 3D (x,y,z) I can also call it (r,phi,theta). But if I have a point in 4D (x,y,z,w), and I want to call it (r,phi,theta,omega), how do I compute omega?
  2. jcsd
  3. Dec 13, 2006 #2
    I don't exactly know for what application you need that, but to define an angle you have to first define a function between two axes. If what you mean is "convert" something N-1 D to N D coordinates, I think you take it as if the added value can be arbitrary.
  4. Dec 13, 2006 #3
    Use the dot product.
  5. Dec 13, 2006 #4
    This is one of doing it:

    x=r cos(phi)
    y=r sin(phi) cos(theta)
    z=r sin(phi) sin(theta) cos(omega)
    w=r sin(phi) sin(theta) sin(omega)
  6. Dec 13, 2006 #5
    Ok I think I can see how it generalizes now. If I have a coordinate system for (N-1) D, I can just define an angle between (N-1) space and the Nth dimension, and then project into (N-1) space and then use the (N-1) coordinate system with the projection prepended.

    So in 2D we have
    x = r*cos(phi)
    y = r*sin(phi).
    Then when I add a third dimension, I define theta as the angle between the 2D space and the new dimension, then project r onto the 2D space with cos(theta), and get
    x = r*cos(theta)*cos(phi)
    y = r*cos(theta)*sin(phi). Then project onto the 3rd D to get the final piece,
    z = r*sin(theta).

    So for 4D I would define omega as the angle between 3D and the 4th D, and let the projection be cos(omega) into 3D to get
    x = r*cos(omega)*cos(theta)*cos(phi)
    y = r*cos(omega)*cos(theta)*sin(phi)
    z = r*cos(omega)*sin(theta)
    w = r*sin(omega)
    where all I did was prepend cos(omega) to the (N-1) projections and then define the new coordinate as r*sin(omega).
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook