Анимация.Градусник должен доходить до 30 - Pascal ABC

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

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

Анимация.Градусник должен доходить до 30, а доходит до 26.....И как сделать, чтобы он сначала поднялся до 30 и потом опустился до -30?

Решение задачи: «Анимация.Градусник должен доходить до 30»

textual
Листинг программы
uses graphABC;
procedure korpus;
var x,y,i,t:integer;
    s:string;
begin
setbrushcolor(clwhite);//белый цвет корпуса
setpencolor(clblack); //черный цвет линий шкалы
rectangle(50,18,150,480);
x:=100; y:=30;
for i:=0 to 80 do
 begin
  if i mod 10=0 then line(x-20,y,x+20,y) //длина основных линий
  else line(x-15,y,x+15,y); //длина промежуточных линий
  y:=y+5;
 end;
//цифры
x:=60; y:=420; t:=-30;
for i:=1 to 10 do
 begin
  s:=inttostr(t);
  textout(x,y,s);
  y:=y-50;
  t:=t+10;
 end;
//цвет ртути
setpencolor(clred);
setbrushcolor(clred);
//основная точка
circle(100,450,10);
rectangle(97,430,103,440);
end;
 
var i,x,y: integer;
begin
setwindowsize(200,500);//размерокна
setbrushcolor(clgray); //его цвет
rectangle(0,0,200,500);
korpus; //рисуем корпус
sleep(1000);//задержка
x:=100; y:=430;
lockdrawing;
for i:=1 to 60 do //ртуть верх
 begin
  clearwindow(clgray);
  korpus;
  setpencolor(clred);
  setbrushcolor(clred);
  rectangle(x-3,y-5,x+3,430);
  y:=y-5;
  sleep(50); //скорость
  redraw
 end;
sleep(1000);//задержка
for i:=1 to 60 do //ртуть вниз
 begin
  clearwindow(clgray);
  korpus;
  setpencolor(clred);
  setbrushcolor(clred);
  rectangle(x-3,y+5,x+3,430);
  y:=y+5;
  sleep(50); //скорость
  redraw
 end;
 
end.

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

  1. Используется библиотека graphABC.
  2. Создается процедура korpus.
  3. Переменные x, y, i и t инициализируются значениями 100, 30, 0 и -30 соответственно.
  4. С помощью функции rectangle рисуется прямоугольник размером 150x480.
  5. С помощью цикла for от 0 до 80 рисуются основные линии градусника с шагом 5.
  6. С помощью функции textout на координаты (60,420) выводятся цифры от 0 до 9.
  7. Переменные x, y и t обновляются для рисования промежуточных линий и цифры.
  8. С помощью функций circle и rectangle рисуется основная точка градусника.
  9. Устанавливается размер окна приложения с помощью функции setwindowsize.
  10. Вызывается процедура korpus для рисования корпуса градусника.
  11. Устанавливаются цвета пера и кисти на красный с помощью функций setpencolor и setbrushcolor.
  12. Циклом for от 1 до 60 рисуются части градусника, которые представляют собой дуги окружностей.
  13. После каждой дуги окружности с помощью функции clearwindow очищается окно приложения.
  14. С помощью функций setpencolor и setbrushcolor устанавливаются цвета пера и кисти на красный.
  15. С помощью функций rectangle и circle рисуются дуги окружностей.
  16. С помощью функции sleep задерживается выполнение программы.
  17. Завершается программа.

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

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