Анимация в паскаль. Моделирование движения шара и упругих отражений от стен.
В этой статье мы разберем еще один пример графической анимации в паскаль.Мы напишем программу на Abc Pasacal в которой будет моделироваться движение шара в коробке. Шар при столкновении со стенками и границами экрана упруго отражается.
Чтобы смоделировать движение шара в программе на паскаль,
вводятся переменные отвечающие за координаты центра и проекции скорости на ось x и ось y
x:=70;
y:=120;
vx:=2;
vy:=1;
Чтобы задать перемещение объекта в программе паскаль необходимо нарисовать объект, через паузу стереть его и изменить координаты центра объекта
SetPenColor(clBlack);
circle(x,y,r);
sleep(20);
SetPenColor(clWhite);
circle(x,y,r);
x:=x+vx;
y:=y+vy;
Чтобы смоделировать в программе отражение от стены необходимо при пересечении границы поменять знак проекции скорости объекта. Например отражение от левой стены задается условием
if (x<r) then begin
vx:=-vx;
end;
Отражение от правой стены задается условием
if (x>500-r) then begin
vx:=-vx;
end;
Аналогично в программе задаётся отражение от верхней границы и нижней, только меняется проекция скорости на ось y это vy
if (y>500-r) then begin
vy:=-vy;
end;
if (y<r) then begin
vy:=-vy;
end;
Полная версия программы на abc pascal графической анимации, в которой моделируется движение и упругие удары, отскоки шара.
uses GraphABC;
var i,x,y,vx,vy,r,xs1,xs2,ys1,ys2 : integer;
begin
x:=70;
y:=120;
vx:=2;
vy:=1;
r:=5;
setWindowSize(500, 500);
for i:=1 To 1000 do
begin
SetPenColor(clBlack);
circle(x,y,r);
sleep(20);
SetPenColor(clWhite);
circle(x,y,r);
x:=x+vx;
y:=y+vy;
if (x>500-r) then begin
vx:=-vx;
end;
if (x<r) then begin
vx:=-vx;
end;
if (y>500-r) then begin
vy:=-vy;
end;
if (y<r) then begin
vy:=-vy;
end;
end;
SetPenColor(clBlack);
circle(x,y,r);
end.

Полезно почитать по теме анимация и графика в abc pascal:
Анимация в Паскаль
Графика в Паскаль
Поделиться