04-11-2016, 03:20 PM

Traditionally, spherical coordinates are given as:

[ r, theta, phi ]

where theta is an angle measured from the X axis, going towards the Y axis, and phi is an angle measured from the Z axis towards the XY plane.

Doesn't it make more sense to use more general hyperspherical coordinates?

The only difference is in how you measure the angles.

The hyperspherical system measures all angles consistently from the plane of the vector in (N-1) dimensions, towards the axis in question (dimension N).

For the 3D vector case, this means theta will be measured from the 1-dimensional plane of the vector (the X axis), towards the Y axis (so it's the same as usual).

For the phi angle, it will measure from the XY plane (2-dimensions) towards the Z axis, so it changes from azimuth to equatorial angles.

For a 4th dimension (x y z w), it would measure from the YZ plane towards w.

Why bother with this change?

It makes 2d vectors processed the same as 3d vectors (or any D for that matter), and very easy to streamline in code (see the wikipedia link above), and much more general to use:

[ a ∡b c ] (cylindrical coordinates)

[a b ∡c] (it's a 2D vector in rectangular coordinates rotated out of the XY plane)

[a ∡b ∡c] (spherical coordinates w/equatorial angle)

[a b c ∡d] (a 4D vector rotated out of the YZ plane)

Basically, you can put an angle anywhere in the vector and it would work correctly.

[ r, theta, phi ]

where theta is an angle measured from the X axis, going towards the Y axis, and phi is an angle measured from the Z axis towards the XY plane.

Doesn't it make more sense to use more general hyperspherical coordinates?

The only difference is in how you measure the angles.

The hyperspherical system measures all angles consistently from the plane of the vector in (N-1) dimensions, towards the axis in question (dimension N).

For the 3D vector case, this means theta will be measured from the 1-dimensional plane of the vector (the X axis), towards the Y axis (so it's the same as usual).

For the phi angle, it will measure from the XY plane (2-dimensions) towards the Z axis, so it changes from azimuth to equatorial angles.

For a 4th dimension (x y z w), it would measure from the YZ plane towards w.

Why bother with this change?

It makes 2d vectors processed the same as 3d vectors (or any D for that matter), and very easy to streamline in code (see the wikipedia link above), and much more general to use:

[ a ∡b c ] (cylindrical coordinates)

[a b ∡c] (it's a 2D vector in rectangular coordinates rotated out of the XY plane)

[a ∡b ∡c] (spherical coordinates w/equatorial angle)

[a b c ∡d] (a 4D vector rotated out of the YZ plane)

Basically, you can put an angle anywhere in the vector and it would work correctly.