Пример #1
0
        public void TestFromPositionMun()
        {
            double   UT       = 20000.0;
            Vector3d position = MockBody.Mun.GetPositionAtUT(UT);
            Vector3d velocity = MockBody.Mun.GetOrbitalVelocityAtUT(UT);

            MockOrbit orbit = new MockOrbit(MockBody.Kerbin, position, velocity, UT);

            Assert.Equal(MockBody.Mun.orbit.inclination, orbit.inclination, 7);
            Assert.Equal(MockBody.Mun.orbit.eccentricity, orbit.eccentricity, 7);
            Assert.Equal(MockBody.Mun.orbit.semiMajorAxis, orbit.semiMajorAxis, 7);
            AssertEqual(MockBody.Mun.GetPositionAtUT(25000.0), orbit.GetRelativePositionAtUT(25000.0));
            AssertEqual(MockBody.Mun.GetOrbitalVelocityAtUT(25000.0), orbit.GetOrbitalVelocityAtUT(25000.0));
        }
Пример #2
0
        public void TestShipOrbit()
        {
            MockOrbit orbit = new MockOrbit(MockBody.Kerbin, 23.0000000004889, 0.499999999787874, 1999999.99888609,
                                            12.0000000035085, 45.000000043628, 2248030.00958346, -1.76866346012346);

            AssertEqual(orbit.frameX, new Vector3d(0.556326074237772, 0.78368736854604, 0.276288630791373));
            AssertEqual(orbit.frameY, new Vector3d(-0.826983528498581, 0.489655834561346, 0.276288630370612));
            AssertEqual(orbit.frameZ, new Vector3d(0.0812375696043732, -0.382192715866505, 0.920504853449106));
            Assert.Equal(0.000664417038265578, orbit.meanMotion, 7);
            Assert.Equal(-2.55587262120358, orbit.GetTrueAnomalyAtUT(2248030.02958346), 7);
            AssertEqual(orbit.GetRelativePositionAtUT(2248030.02958346),
                        new Vector3d(-16555.4669097162, -2375291.03194007, -984757.441721877));
            AssertEqual(orbit.GetOrbitalVelocityAtUT(2248030.02958346),
                        new Vector3d(894.837941056022, 414.309011750899, 93.0483164395469));
        }
Пример #3
0
        public void TestFromPositionDuna()
        {
            double   UT       = 20000.0;
            Vector3d position = MockBody.Duna.GetPositionAtUT(UT);
            Vector3d velocity = MockBody.Duna.GetOrbitalVelocityAtUT(UT);

            MockOrbit orbit = new MockOrbit(MockBody.Kerbol, position, velocity, UT);

            Assert.Equal(MockBody.Duna.orbit.inclination, orbit.inclination, 7);
            Assert.Equal(MockBody.Duna.orbit.eccentricity, orbit.eccentricity, 7);
            Assert.Equal(MockBody.Duna.orbit.semiMajorAxis, orbit.semiMajorAxis, 4);
            Assert.Equal(MockBody.Duna.orbit.lan, orbit.lan, 7);
            Assert.Equal(MockBody.Duna.orbit.argumentOfPeriapsis, orbit.argumentOfPeriapsis, 5);
            AssertEqual(MockBody.Duna.GetPositionAtUT(25000.0), orbit.GetRelativePositionAtUT(25000.0));
            AssertEqual(MockBody.Duna.GetOrbitalVelocityAtUT(25000.0), orbit.GetOrbitalVelocityAtUT(25000.0));
        }