Esempio n. 1
0
        public static double GetAngleToRetrograde(this Orbit orbit, double universalTime)
        {
            if (orbit.referenceBody == CelestialBodies.SystemBody.CelestialBody)
            {
                return(0.0);
            }

            Vector3d orbitVector = orbit.getRelativePositionAtUT(universalTime);

            orbitVector.z = 0.0;

            Vector3d bodyVector = orbit.referenceBody.orbit.getOrbitalVelocityAtUT(universalTime);

            bodyVector.z = 0.0;

            double angle = AngleHelper.GetAngleBetweenVectors(-bodyVector, orbitVector);

            return(AngleHelper.Clamp360(orbit.inclination < 90.0 ? angle : 360.0 - angle));
        }
Esempio n. 2
0
        public static double GetPhaseAngle(this Orbit orbit, Orbit target)
        {
            var angle = AngleHelper.GetAngleBetweenVectors(Vector3d.Exclude(orbit.GetOrbitNormal(), target.pos), orbit.pos);

            return((orbit.semiMajorAxis < target.semiMajorAxis) ? angle : angle - 360.0);
        }