Пример #1
0
        ///// <summary>
        ///// Compute the angle in degrees per day 'n'
        ///// </summary>
        ///// <param name="model"></param>
        ///// <returns></returns>
        //public static double GetAnglePerDay(this KeplerianDateModel model)
        //{
        //    return KeplerianHelper.GetAnglePerDay(model.Values.SemiMajorAxis);
        //}

        ///// <summary>
        ///// Compute the mean anomaly 'M'
        ///// </summary>
        ///// <param name="model"></param>
        ///// <returns></returns>
        //public static double GetMeanAnomaly(this KeplerianDateModel model)
        //{
        //    return (model.Values.MeanLongitude - model.Values.PerihelionLongitude) % 360;
        //}

        ///// <summary>
        ///// Compute the mean anomaly 'M'
        ///// </summary>
        ///// <param name="model"></param>
        ///// <returns></returns>
        //public static double GetMeanAnomalyForDay(this KeplerianDateModel model)
        //{
        //    return (model.Values.MeanLongitude - model.Values.PerihelionLongitude) % 360;
        //}

        /// <summary>
        /// Compute the true anomaly 'ν'
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static double GetEccentricAnomaly(this KeplerianDateModel model)
        {
            var eccentricity = model.Values.Eccentricity;
            var meanAnomaly  = model.Values.GetMeanAnomaly360();

            return(KeplerianHelper.GetEccentricAnomaly(eccentricity, meanAnomaly));
        }
        public KeplerianCalculationModel(KeplerianDateModel model)
        {
            MeanAnomaly      = model.Values.GetMeanAnomaly360();
            EccentricAnomaly = new DegreeModel(KeplerianHelper.GetEccentricAnomaly(model.Values.Eccentricity, MeanAnomaly));
            TrueAnomaly      = new DegreeModel(KeplerianHelper.GetEccentricAnomaly2(model.Values.Eccentricity, MeanAnomaly));

            TrueAnomaly = EccentricAnomaly;

            AverageCentricDistance = KeplerianHelper.GetAverageCentricDistance(model.Values.SemiMajorAxis.Degrees, model.Values.Eccentricity);
            CentricDistance        = KeplerianHelper.GetCentricDistance(AverageCentricDistance, model.Values.Eccentricity, TrueAnomaly);
            Location = KeplerianHelper.GetLocation(CentricDistance, model.Values.AscendingNodeLongitude, model.Values.GetArgumentOfPerihelion(), TrueAnomaly, model.Values.Inclination);
        }