;. Start ();
}
/ / /
/ / / Фіксація точок через певний проміжок часу таймера GlobalTimer
/ / /
/ / /
/ / / void GlobalTimer_Tick (object sender, EventArgs e)
{
/ / Малюємо точки сліду спутніка.DrawEllipse (new Pen (Color.Gray, 2), Satelite.X, Satelite.Y, (float) Satelite.Width, (float) Satelite.Height);
/ / Лінія від землі до спутніка.DrawLine (new Pen (Color.Indigo, 1), Earth.X + 20, Earth.Y + 25, Satelite.X, Satelite.Y);
/ / Лінія від другого фокуса до супутника
graphic.DrawLine (new Pen (Color.Salmon, 1), (float) (Ellipse.Width - Ellipse.Focus), Earth.Y + 25, Satelite.X, Satelite.Y);
}
/ / /
/ / / Отрісовка руху супутника по таймеру
/ / /
/ / /
/ / / void timer_Tick (object sender, EventArgs e)
{
# region Робота з лейбламі.lbSatX.Text=«Satelite X =» + Satelite.X.ToString ();. LbSatY.Text=«Satelite Y =» + Satelite.Y.ToString ();. LbSpeed.Text=«Speed ??=» + Speed.ToString ();
# endregion
/ / Вимикаємо таймер, коли супутник пройде весь шлях по орбіті
if (arcAngleOffset == 361)
{. Stop ();
((Timer) sender). Stop ();;
} path=new GraphicsPath ();
/ / Створюємо дугу еліпса, по якій іде супутник
path.AddArc (1, 1, (float) Ellipse.Width, (float) Ellipse.Height, 1, arcAngleOffset);
/ / На кінцевій точці дуги буде сам супутник
Satelite.Y=path.PathPoints [path.PointCount - 1]. Y - (float) Satelite.Height / 2;
Satelite.X=path.PathPoints [path.PointCount - 1]. X - (float) Satelite.Width / 2;
/ / Малюємо слід руху супутника
graphic.DrawPath (new Pen (Color.Red, 2), path);
((Timer) sender). Interval=(int) speed/100000; + +;
} void Form1_Activated (object sender, EventArgs e)
{
_DrawGraphics ();
}
}
}
Код класу, що представляє геометричні фігури. Geometries.cs
using System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks; Kepler
{Geomtries
{
/ / /
/ / / Клас, який зберігає значення отрісовиваємих еліпса
/ / / class Ellipse
{
/ / /
/ / / Конструктор класу
/ / /
/ / / Висота еліпса
...