예제 #1
0
        private void GenerateMoons(int maxMoons)
        {
            if (maxMoons <= 0)
            {
                return;
            }

            for (var i = 0; i <= maxMoons; i++)
            {
                var moon = new Orbital(OrbitalType.Moon);
                AddOrbital(moon);
                moon.OrbitRadius   = this.OrbitRadius / 10;            //1000000000000; // FIXME: This makes no sense;
                moon.OrbitalPeriod = moon.OrbitTimeForDistance() / 10; // TODO: Fix with real physics!
            }
        }
예제 #2
0
        public Orbital Pluto()
        {
            var pluto = new Orbital(OrbitalType.Planet)
            {
                Mass             = (float)0.0146 * multiplierMass,
                Diameter         = 2370,
                Density          = 2095,
                Gravity          = 0.7,
                RotationPeriod   = -153,
                OrbitRadius      = (ulong)5906.4 * multiplierDistance,
                OrbitalPeriod    = 90560,
                OrbitalInitAngle = 50
            };

            // Todo Add moons
            return(pluto);
        }
예제 #3
0
        public Orbital Neptune()
        {
            var neptune = new Orbital(OrbitalType.Planet)
            {
                Mass             = 102 * multiplierMass,
                Diameter         = 49528,
                Density          = 1638,
                Gravity          = 11.0,
                RotationPeriod   = 16,
                OrbitRadius      = (ulong)4495.1 * multiplierDistance,
                OrbitalPeriod    = 59800,
                OrbitalInitAngle = 100
            };

            // Todo Add moons
            return(neptune);
        }
예제 #4
0
        public Orbital Uranus()
        {
            var uranus = new Orbital(OrbitalType.Planet)
            {
                Mass             = (float)86.8 * multiplierMass,
                Diameter         = 51118,
                Density          = 1271,
                Gravity          = 8.7,
                RotationPeriod   = -17,
                OrbitRadius      = (ulong)2872.5 * multiplierDistance,
                OrbitalPeriod    = 30589,
                OrbitalInitAngle = 120
            };

            // Todo Add moons
            return(uranus);
        }
예제 #5
0
        public Orbital Saturn()
        {
            var saturn = new Orbital(OrbitalType.Planet)
            {
                Mass             = 568 * multiplierMass,
                Diameter         = 120536,
                Density          = 687,
                Gravity          = 9,
                RotationPeriod   = 10,
                OrbitRadius      = (ulong)1433.5 * multiplierDistance,
                OrbitalPeriod    = 10747,
                OrbitalInitAngle = 135
            };

            // Todo Add moons
            return(saturn);
        }
예제 #6
0
        public Orbital Jupiter()
        {
            var jupiter = new Orbital(OrbitalType.Planet)
            {
                Mass             = 1898 * multiplierMass,
                Diameter         = 142984,
                Density          = 1326,
                Gravity          = 23.1,
                RotationPeriod   = 10,
                OrbitRadius      = (ulong)778.6 * multiplierDistance,
                OrbitalPeriod    = 4331,
                OrbitalInitAngle = 260
            };

            // Todo Add moons
            return(jupiter);
        }
예제 #7
0
        public Orbital Mars()
        {
            var mars = new Orbital(OrbitalType.Planet)
            {
                Mass             = (float)0.642 * multiplierMass,
                Diameter         = 6792,
                Density          = 3933,
                Gravity          = 3.7,
                RotationPeriod   = 10,
                OrbitRadius      = (ulong)227.9 * multiplierDistance,
                OrbitalPeriod    = 687,
                OrbitalInitAngle = 300
            };

            // Todo Add moons
            return(mars);
        }
예제 #8
0
        private void GenerateSol()
        {
            //https://nssdc.gsfc.nasa.gov/planetary/factsheet/index.html
            var sol = new Orbital(OrbitalType.Star);

            sol.AddOrbital(new Planet().Mercury());
            sol.AddOrbital(new Planet().Venus());
            sol.AddOrbital(new Planet().Earth());
            sol.AddOrbital(new Planet().Mars());
            sol.AddOrbital(new Planet().Jupiter());
            sol.AddOrbital(new Planet().Saturn());
            sol.AddOrbital(new Planet().Uranus());
            sol.AddOrbital(new Planet().Neptune());
            if (PlutoIsAPlanet)
            {
                sol.AddOrbital(new Planet().Pluto());
            }

            AddOrbital(sol);
        }