Coordinate conversions
Header file coords.h
Global methods
Radians and degrees
Convert radians to degrees and degrees to radians:
double rad2deg(double angle_in_radians)
double deg2rad(double angle_in_degrees)
e.g.
#include<coords.h>
...
double angle; cin >> angle; // read in degrees
angle = deg2rad(angle); // convert to radians
...
angle = rad2deg(angle); // convert back to degrees
Classes
Circular polars (2D)
- Name
Circular_polar
(inherits from Classio
)
- Data members
-
double r
: radius
double theta
: angle (radians)
- Input/output methods
-
void Read(istream& stream)
: reads r, theta
void Write(ostream& stream)
: writes r, theta
- Type conversion methods
-
- Create from a 2D vector:
Circular_polar (const Vector2d& v)
- Create a 2D vector:
Vector2d cartesian() const
e.g.
#include<coords.h>
...
Vector2d v; cin >> v; // read 2D vector
Circular_polar vp(v); // convert to circular polar
Spherical polars
- Name
Spherical_polar
(inherits from Classio
)
- Data members
-
double r
: radius
double theta
: angle in xy plane (radians)
double phi
: angle from z axis (radians)
- Input/output methods
-
void Read(istream& stream)
: reads r, theta, phi
void Write(ostream& stream)
: writes r, theta, phi
- Type conversion methods
-
- Create from a 3D vector:
Spherical_polar (const Vector3d& v)
- Create a 3D vector:
Vector3d cartesian() const
e.g.
#include<coords.h>
...
Spherical_polar vp; cin >> vp; // read spherical polar
Vector3d v = vp.cartesian(); // convert to 3-vector