Моделирование свободного падения тела, брошенного с некоторой высоты H - C#
Формулировка задачи:
Задание: Смоделируйте свободное падение тела, брошенного с некоторой высоты H. Высоту выбираем сами.
уже весь форум облазил и ничего похожего не нашел, могу создать окружность, но как её заставить двигаться не могу понять.
Решение задачи: «Моделирование свободного падения тела, брошенного с некоторой высоты H»
textual
Листинг программы
public partial class MainForm : Form
{
RectangleF r;
float vel;
SynchronizationContext sc;
public MainForm()
{
InitializeComponent();
r = new RectangleF(100,100,50,50);
sc = SynchronizationContext.Current;
vel = 0;
((AsyncCallback) delegate
{
while (true)
{
vel += (float)((9.8 * Math.Pow(0.2,2))/2.0);
r.Y+=vel;
if (r.Y>=750)
{
vel = 0;
r.Y=750;
}
Thread.Sleep(50);
sc.Post( delegate { Invalidate(); }, null);
}
}).BeginInvoke(null, null, null);
}
void MainFormPaint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawLine(Pens.Red, 0, 800, 800, 800);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.FillEllipse(Brushes.Black, r);
string s = string.Format("{0:0.000}", vel);
g.DrawString("Velocity:"+s,new Font("Arial",12), Brushes.Black, new PointF(400,100));
}
void MainFormKeyPress(object sender, KeyPressEventArgs e)
{
vel-=(float)0.6;
}
}