САЙТ УЧИТЕЛЯ ИНФОРМАТИКИ |
|||||||||||||||
МОУ СОШ №3 г. Осташков Тверская обл. | |||||||||||||||
|
Мини-проекты в Delphi Проект «Падение тела» Из физики известно, что все тела падают на землю с ускорением, равным ускорению свободного падения. Создадим проект, в котором моделируется падение мяча с высоты 5 м. При этом мячик отскакивает вверх, падает и т. д. При каждом отскоке скорость становится меньше и через некоторое время он останавливается. Падение происходит в соответствии с формулой. На форме размером 570 х 480 разместим слева панель (TPanel), на ней фигуру (TShape) в форме круга размером 25 х 25, любого цвета, таймер (TTimer), для которого установим интервал 10 (100 миллисекунд). Справа четыре кнопки с соответствующими надписями (см рисунок).
В ней устанавливаются начальные значения высоты и скорости, запускается таймер. procedure TForm1.Timer1Timer(Sender: TObject); begin if h<=0.3 then begin v:=-v*0.95; If abs(v)<0.5 then begin Shape1.Top:=Panel1.ClientHeight-Shape1.Height ; Timer1.Enabled := false; end; end; v:=v+g*dt; h:=h-v*dt; Shape1.Top:=Panel1.ClientHeight-round(h*m); end; Условие h<=0.3 требуется для того, чтобы смоделировать отскок с учетом размеров мяча. При этом скорость меняет знак, а коэффициент 0,95 учитывает некоторое уменьшение энергии. В условии abs(v)<0.5 abs – абсолютная величина (модуль), число 0,5 подобрано, так как при достижении малой скорости мяч останавливается. Его положение станет Shape1.Top:=Panel1.ClientHeight-Shape1.Height . Таймер выключается. procedure TForm1.Button2Click(Sender: TObject); begin Timer1.Enabled := false; end; Кнопка «Продолжить»: procedure TForm1.Button3Click(Sender: TObject); begin Timer1.Enabled :=true; end; и кнопка «Выход»: procedure TForm1.Button4Click(Sender: TObject); begin Application.Terminate; end;
|
||||||||||||||