Exemple #1
0
        // MMath.SinToCos(double, EQuadrantList)
        /// <summary>
        /// Liefert den Kosinuswert zum Sinuswert und Quadranten.
        /// </summary>
        /// <param name="value">Sinuswert.</param>
        /// <param name="quadrant">Quadrant.</param>
        /// <returns>Kosinuswert zum Sinuswert und Quadranten.</returns>
        public static double SinToCos(double value, EQuadrant quadrant)
        {
            double rtn = MMath.Sgn(value) * MMath.Sqr(1.0 - value * value);

            if (quadrant == EQuadrant.II || quadrant == EQuadrant.IV)
            {
                rtn = -rtn;
            }
            return(rtn);
        }
Exemple #2
0
        // MMath.ToQuadrant(double)
        /// <summary>
        /// Liefert den Quadranten zum Winkel.
        /// </summary>
        /// <param name="value">Winkel in Bogenmaß.</param>
        /// <returns>Quadrant zum Winkel.</returns>
        public static EQuadrant ToQuadrant(double value)
        {
            // Quadrant bestimmen und liefern
            double rtn = MMath.Mod(value, MMath.Pi2);

            if (MMath.Sgn(rtn) == -1.0)
            {
                rtn += MMath.Pi2;
            }
            return((EQuadrant)(int)MMath.Ceil(rtn / MMath.Rad090));
        }
Exemple #3
0
        // MMath.ArcTan(double, double)
        /// <summary>
        /// Liefert den Winkel zum Tagensquotient in Bogenmaß.
        /// </summary>
        /// <param name="x">Zähler des Quotienten.</param>
        /// <param name="y">Nenner des Quotienten.</param>
        /// <returns>Winkel zum Tagensquotient in Bogenmaß.</returns>
        public static double ArcTan(double x, double y)
        {
            // TODO: MMath.ArcTan(double, double): Prüfen, ob Eigenimplemention erforderlich ist {Meeus Seite 9}.
            if (y == 0)
            {
                return(MMath.Sgn(x) * MMath.Rad090);
            }
            double l = MMath.ArcTan(x / y);

            if (MMath.Sgn(y) == -1.0)
            {
                l += MMath.Pi;
            }
            return(l);
        }