Анимация пузырьков в pascal

16 апреля 2020 - Администратор

Графическая анимация в pascal всплывающие пузырьки

В этой статье мы создадим в abc pascal программу  с графической анимацией в которой будут отражаться всплывающие пузырьки. 
Чтобы рисовать множество объектов  в графическом режиме abc pascal удобно использовать массивы. Для каждого объекта задается массивы его координат. Подробнее о массивах в abc pasacal
var xm,ym: array[1 .. 30] of integer;
Чтобы задать задать начальные координаты  пузырьков случайным образом необходимо использовать цикл for 
for j:=1 to n do begin
xm[j]:=random(400) + 20;
ym[j]:=random(400) + 20;
end;

Для того чтобы моделировать анимацию в программе паскаль, необходимо в теле цикла for рисовать все объекты(круги), и после паузы стирать их , далее уменьшать координаты y каждого объекта 
ym[j]:=ym[j]-1;
Пузырьки достигнув верхней границы экрана могут исчезнут. Чтобы они не исчезали, нужно заново устанавливать координаты y всех объектов, которые достигли верхней границы. Это обеспечивается в программе с помощью условия
if ym[j]<r then begin
ym[j]:=500;
end;

Для того чтобы смоделировать увеличение размеров всплывающих пузырьков , будем менять радиус окружности. Чем меньше координата , тем больше радиус пузырька.
r:=round(50-y/10);
Полная программа abc pascal для графической анимации пузырьков. Пузырьки поднимаются наверх
uses GraphABC;
var n,j,x,i,y, r: integer;
var xm,ym: array[1 .. 30] of integer;
begin
r:=5;
n := 30;
setWindowSize(500, 500);
clearwindow();
for j:=1 to n do begin
xm[j]:=random(400) + 20;
ym[j]:=random(400) + 20;
end;
for i:=1 To 1000 do
begin
for j:=1 to n do begin
SetPenColor(clBlack);
x:=xm[j];
y:=ym[j];
drawcircle(x,y,r);
ym[j]:=ym[j]-1;
if ym[j]<r then begin
ym[j]:=500;
end;
end;
sleep(10);
clearwindow();
end;
end
.

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

Поделиться

Комментарии (0)

Нет комментариев. Ваш будет первым!