Анимация. Колесо вращается - PascalABC.NET

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

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

Здравствуйте, помогите пожалуйста, напишите код, которые сделает так, чтобы колесо крутилось. Т.е Само колесо крутилось и те колеса, что внутри также, пожалуйста, сделайте, умоляю, очень нужно до завтра) Я пытался, но криворуко( Вот само колесо.

Решение задачи: «Анимация. Колесо вращается»

textual
Листинг программы
uses GraphABC;
const n=5;
      cl:array[1..n] of Color=(clOrange,clRed,clBrown,clBlue,clGreen);
var a:array [1..n] of point;
    c,r1,r2,r3,r4:integer;
    u,u1:real;
Begin
 SetWindowSize(500,500);
 Centerwindow;
 c:=250;
 r1:=100;
 r2:=50;
 r3:=75;
 r4:=20;
 lockdrawing;
 u:=0;
 repeat
 clearwindow;
 SetPenColor(ClGray);
 SetPenWidth(3);
 SetPenColor(ClPurple);
 Circle(c,c,r1);
 SetPenColor(ClPurple);
 Circle(250,250,r2);
 u1:=u;
 for var i:=1 to n do
  begin
   a[i].x:=c+round(r3*cos(u1));
   a[i].y:=c-round(r3*sin(u1));
   u1:=u1+2*pi/5;
   SetPenColor(cl[i]);
   Circle(a[i].x,a[i].y,r4);
  end;
 sleep(50);
 u:=u-0.1;
 redraw
 until false
 end.

Объяснение кода листинга программы

  1. Объявлены переменные: n, cl, a, c, r1, r2, r3, r4, u, u1 (20)
  2. Задаются размеры окна и его расположение по центру (SetWindowSize, Centerwindow)
  3. Задаются начальные значения для переменных c, r1, r2, r3, r4 (c:=250; r1:=100; r2:=50; r3:=75; r4:=20)
  4. Блокируется отрисовка (lockdrawing)
  5. Задается начальное значение для переменной u (u:=0)
  6. В цикле while (repeat..until false) происходит отрисовка: 6.1 Очищается окно (clearwindow) 6.2 Задается цвет и ширина пера (SetPenColor, SetPenWidth) 6.3 Рисуется окружность с центром в точке c и радиусом r1 (Circle(c,c,r1)) 6.4 Рисуется окружность с центром в точке (250,250) и радиусом r2 (Circle(250,250,r2)) 6.5 В цикле for i:=1 to n рисуются окружности с центрами в точках a[i].x и a[i].y и радиусом r4 (a[i].x:=c+round(r3cos(u1)); a[i].y:=c-round(r3sin(u1)); SetPenColor(cl[i]); Circle(a[i].x,a[i].y,r4)) 6.6 Выполняется задержка в 50 миллисекунд (sleep(50)) 6.7 Значение переменной u уменьшается на 0.1 (u:=u-0.1)
  7. После выхода из цикла while выполняется разблокировка отрисовки (redraw)

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


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

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

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