/// <summary> /// Converts to spherical coordinates. /// </summary> /// <returns>SphericalCoordinate.</returns> public static SphericalCoordinate ToSpherical(CylindricalCoordinate coordinate) { double radius = AlgebraLibrary.SRSS(coordinate.Radius, coordinate.Height); double azimuth = coordinate.Azimuth.Radians; double inclination = NMath.Atan(coordinate.Radius / coordinate.Height); return(new SphericalCoordinate(radius, inclination, azimuth, coordinate.Tolerance)); }
/// <summary> /// Converts to Cartesian coordinates. /// </summary> /// <returns>CartesianCoordinate.</returns> public static CartesianCoordinate3D ToCartesian(CylindricalCoordinate coordinate) { double x = coordinate.Radius * NMath.Cos(coordinate.Azimuth.Radians); double y = coordinate.Radius * NMath.Sin(coordinate.Azimuth.Radians); double z = coordinate.Height; return(new CartesianCoordinate3D(x, y, z, coordinate.Tolerance)); }