/// <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));
        }
Beispiel #2
0
        /// <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));
        }