Coordinate conversions in 3D (rectangular, cylindrical and spherical)
10-09-2016, 12:42 PM (This post was last modified: 11-06-2016 11:41 AM by JMB.)
Post: #1
 JMB Member Posts: 97 Joined: Jan 2016
Coordinate conversions in 3D (rectangular, cylindrical and spherical)
I present here six short programs to convert coordinates in three dimensions, among the three coordinate systems: rectangular, cylindrical and spherical.

To accomplish this task, I use the Prime functions polar_coordinates and rectangular_coordinates. These functions automatically handle special cases (for example: ATAN(y/x) when x, y or both are zero), and place the angles in the correct quadrant.

All these functions use the angular mode that is active in the calculator at the moment when they are executed.

The names and conventions used for the rectangular, cylindrical and spherical coordinate systems, can be seen in the following image:

PHP Code:
EXPORT RecToCyl(rec)// [x,y,z] → [ρ,φ,z]BEGIN  LOCAL cyl:=polar_coordinates(rec(1),rec(2));  [cyl(1),cyl(2),rec(3)];END;EXPORT CylToRec(cyl)// [ρ,φ,z] → [x,y,z]BEGIN  LOCAL rec:=rectangular_coordinates(cyl(1),cyl(2));  [rec(1),rec(2),cyl(3)];END;  EXPORT SphToCyl(sph)// [r,θ,φ] → [ρ,φ,z]BEGIN  LOCAL cyl:=rectangular_coordinates(sph(1),sph(2));  [cyl(2),sph(3),cyl(1)];END; EXPORT CylToSph(cyl)// [ρ,φ,z] → [r,θ,φ]BEGIN  LOCAL sph:=polar_coordinates(cyl(3),cyl(1));  [sph(1),sph(2),cyl(2)];END;   EXPORT RecToSph(rec)// [x,y,z] → [r,θ,φ]BEGIN  CylToSph(RecToCyl(rec));END;EXPORT SphToRec(sph)// [r,θ,φ] → [x,y,z]BEGIN  CylToRec(SphToCyl(sph));END;

Attached File(s)