Анимация фигуры - изменение размеров и перемещение - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста анимировать фигуру. Сначала она должна уменьшаться, а потом двигаться по диагонали к каждому углу экрана.

Решение задачи: «Анимация фигуры - изменение размеров и перемещение»

textual
Листинг программы
uses graphabc;
procedure figura(x,y,r,a:integer);
begin
setpenwidth(3);
r:=round(a*0.35);
circle(x,y,r);
Line(x,y-a,x-a,y+a);
line(x,y-a,x+a,y+a);
line(x,y+a,x-a,y-a);
line(x,y+a,x+a,y-a);
FloodFill(x,y-r-5,clblack);
end;
var c,r,a,x,y:integer;
begin
setwindowsize (640,640);
centerwindow;
c:=windowwidth div 2;
a:=c;
x:=c;
y:=c;
figura(x,y,r,a);
lockdrawing;
while a>50 do
 begin
  clearwindow;
  a:=a-5;
  figura(x,y,r,a);
  sleep(50);
  redraw;
 end;
while x<windowwidth-a do
 begin
  clearwindow;
  x:=x+5;
  y:=y-5;
  figura(x,y,r,a);
  sleep(50);
  redraw;
 end;
x:=c;
y:=c;
clearwindow;
unlockdrawing;
figura(x,y,r,a);
lockdrawing;
while x>a do
 begin
  clearwindow;
  x:=x-5;
  y:=y-5;
  figura(x,y,r,a);
  sleep(50);
  redraw;
 end;
x:=c;
y:=c;
clearwindow;
unlockdrawing;
figura(x,y,r,a);
lockdrawing;
while x>a do
 begin
  clearwindow;
  x:=x-5;
  y:=y+5;
  figura(x,y,r,a);
  sleep(50);
  redraw;
 end;
x:=c;
y:=c;
clearwindow;
unlockdrawing;
figura(x,y,r,a);
lockdrawing;
while x<windowwidth-a do
 begin
  clearwindow;
  x:=x+5;
  y:=y+5;
  figura(x,y,r,a);
  sleep(50);
  redraw;
 end;
unlockdrawing;
setfontsize(20);
setfontcolor(clRed);
textout(150,c,'Программа завершена!')
end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы