Анимация. Ёлка растет - Pascal ABC

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

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

Добрый день, срочно, пожалуйста, данная ёлка должна расти, как анимация.
Пожалуйста, срочно.1
Та же ёлка,но разукрасил. Сделайте анимацию, чтобы она росла, пожалуйста!

Решение задачи: «Анимация. Ёлка растет»

textual
Листинг программы
uses graphABC;
var
  r, i, j, x, y, c: integer;
 
procedure Shar(xx, yy: integer);
begin
  setpencolor(clblack);
  setbrushcolor(clred);
  circle(xx, yy, 10);
  setbrushcolor(clmaroon);
  setpencolor(clmaroon);
  circle(xx + 2, yy + 2, 5);
end;
 
procedure Triangle(x, y, r: integer);
begin
  setpencolor(clgreen);
  line(x - r, y, x, y - (r * 2));
  line(x, y - (r * 2), x + r, y);
  line(x - r, y, x + r, y);
  floodfill(x, y - 2, clgreen);
  Shar(x, y - (r div 2) - (r div 3));
  Shar(x - (r div 4), y - (r div 4));
  Shar(x + (r div 4), y - (r div 4));
  Shar(x - r, y + 10);
  Shar(x + r, y + 10);
end;
 
procedure Gir(x, y, r: integer);
var
  i: integer;
begin
  i := -r;
  while i <= r do
  begin
    if (getpixel(x + i, y + i) = clgreen) then
    begin
      setbrushcolor(clrandom);
      setpencolor(clrandom);
      circle(x + i, y + i, 5);
    end;
    inc(i, 10);
  end;
end;
 
begin
  SetWindowTitle('С Новым Годом!');
  setwindowsize(400, 500);
  lockdrawing;
  x := 200;y := 200;
  r := 25;
  for i := 1 to 20 do
  begin
    clearwindow;
    Triangle(x, y, r);
    Triangle(x, y + 100, r + 30);
    Triangle(x, y + 200, r + 50);
    setpencolor(clbrown);
    setbrushcolor(clbrown);
    rectangle(180, 400, 220, 440);
    Gir(200, 200, 70);
    Gir(200, 300, 100);
    Gir(200, 400, 150);
    sleep(50);
    redraw;
    inc(r, 2);
  end;
end.

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

  1. В первой процедуре Shar(xx, yy) используется функция circle для рисования шара с радиусом 10 в заданной точке с координатами (xx, yy). Затем с помощью функции setbrushcolor и setpencolor меняются цвета кисти и пера на красный и зеленый соответственно. Далее, с помощью функции circle рисуются три меньших шара с радиусом 5 в вершинах равностороннего треугольника, сориентированного по координатам (x, y) и направленного вниз. Функция floodfill используется для заливки внутреннего треугольника зеленым цветом. Наконец, с помощью функции Shar рисуются три меньших шара в вершинах равностороннего треугольника, сориентированного по координатам (x, y) и направленного вниз.
  2. Во второй процедуре Gir(x, y, r) с помощью цикла while и операции getpixel проверяется каждый пиксель в прямоугольнике размером 2r+10 на 2r+10, начиная с (x, y). Если пиксель зеленый, то с помощью функции setbrushcolor и setpencolor меняются цвета кисти и пера на случайный цвет, и с помощью функции circle рисуется круг радиусом 5 в этом пикселе.
  3. В основной части программы с помощью функции SetWindowTitle устанавливается заголовок окна С Новым Годом!. Затем с помощью функции setwindowsize устанавливается размер окна 400 на 500 пикселей. С помощью функции lockdrawing блокируется рисование, чтобы избежать наложения графических объектов. Затем устанавливаются начальные координаты (x, y) и радиус r равный 25. В цикле for от 1 до 20 выполняются следующие действия:
    • Очищается окно.
    • Рисуется треугольник с радиусом r.
    • Рисуется треугольник с радиусом r+30.
    • Рисуется треугольник с радиусом r+50.
    • С помощью функции setpencolor и setbrushcolor меняются цвета кисти и пера на коричневый.
    • Рисуется прямоугольник размером 40 на 140 в левом нижнем углу окна.
    • Рисуется круг радиусом 70 в точке (200, 200).
    • Рисуется круг радиусом 100 в точке (200, 300).
    • Рисуется круг радиусом 150 в точке (200, 400).
    • С помощью функции sleep задерживается выполнение программы на 50 миллисекунд.
    • С помощью функции redraw перерисовывается окно.
    • Увеличивается значение радиуса r на 2.
    • Цикл завершается.
  4. Программа заканчивается вызовом функции halt, которая приостанавливает выполнение программы до тех пор, пока пользователь не нажмет кнопку Остановить.

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


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

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

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