コード例 #1
0
        public void ChangeCoordinatesOfPlanetSystemByOneDayBefore()
        {
            CoordinatesTriger trg = new CoordinatesTriger();
            Galaxy            g   = new Galaxy();

            g.CreateNormalGalaxy();
            //One day changes
            PlanetSystem           ps     = g.SolarSystems.ToArray()[1].Planets.ToArray()[3];
            Tuple <double, double> result = trg.ChangeCoordinatesOfPlanetSystemByOneDayBefore(ps, g.SolarSystems.ToArray()[1]);

            Assert.AreEqual(Math.Round(result.Item1, 3), Math.Round(249.19737775501, 3));
            Assert.AreEqual(Math.Round(result.Item2, 3), Math.Round(-1.8895, 3));
        }
コード例 #2
0
 public Tuple <double, double> ChangeCoordinatesOfPlanetSystemByOneDay(PlanetSystem planetSystem, SolarSystem solarSystem)
 {
     try
     {
         var oneDaydistancechanges = planetSystem.Speed * 60 * 60 * 24 / 1000000;
         var oneDayDegreeChanges   = 180 / planetSystem.OrbitalPeriod;
         var angle        = Math.PI * oneDayDegreeChanges / 180.0;
         var first_coord  = (planetSystem.ELlipseParamA * Math.Cos(planetSystem.Angle += angle));
         var second_coord = (planetSystem.ELlipseParamB * Math.Sin(planetSystem.Angle += angle));
         planetSystem.Coordinates = new Tuple <double, double>(first_coord, second_coord);
         return(planetSystem.Coordinates);
     }
     catch (Exception e)
     {
         throw new System.Exception($"Class {this.GetType().Name}, method {System.Reflection.MethodBase.GetCurrentMethod().Name}" + e.Message);
     }
 }
コード例 #3
0
ファイル: AddItem.cs プロジェクト: KostiukIvan/Solar-System
        private void Button1_Click(object sender, EventArgs e)
        {
            _planet             = new Planet();
            _planet.Name        = textBox1.Text;
            _planet.Coordinates = new Tuple <double, double>(Convert.ToDouble(textBox3.Text.Split('-')[0]),
                                                             Convert.ToDouble(textBox3.Text.Split('-')[1]));
            _planet.Mass          = Convert.ToDouble(textBox4.Text);
            _planet.Diametr       = Convert.ToDouble(textBox5.Text);
            _planet.ELlipseParamA = Convert.ToDouble(textBox6.Text);
            _planet.ELlipseParamB = Convert.ToDouble(textBox7.Text);
            _planet.OrbitalPeriod = Convert.ToDouble(textBox8.Text);
            _planet.Speed         = Convert.ToDouble(textBox9.Text);


            if (IsMoon.Checked == true)
            {
                _moon             = new Moon();
                _moon.Coordinates = new Tuple <double, double>(Convert.ToDouble(textBox15.Text.Split('-')[0]),
                                                               Convert.ToDouble(textBox15.Text.Split('-')[1]));
                _moon.Mass     = Convert.ToDouble(textBox14.Text);
                _moon.Diametr  = Convert.ToDouble(textBox13.Text);
                _moon.EllipseA = Convert.ToDouble(textBox12.Text);
                _moon.EllipseB = Convert.ToDouble(textBox11.Text);
                _moon.Speed    = Convert.ToDouble(textBox2.Text);

                _planetSys = new PlanetSystem(_planet, new List <Moon>()
                {
                    _moon
                });
            }
            else
            {
                _planetSys = new PlanetSystem(_planet);
            }
            _solarSystem.Planets.Add(_planetSys);
            Application.Exit();
        }