Анимация.Градусник должен доходить до 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.
Объяснение кода листинга программы
- Используется библиотека graphABC.
- Создается процедура korpus.
- Переменные x, y, i и t инициализируются значениями 100, 30, 0 и -30 соответственно.
- С помощью функции rectangle рисуется прямоугольник размером 150x480.
- С помощью цикла for от 0 до 80 рисуются основные линии градусника с шагом 5.
- С помощью функции textout на координаты (60,420) выводятся цифры от 0 до 9.
- Переменные x, y и t обновляются для рисования промежуточных линий и цифры.
- С помощью функций circle и rectangle рисуется основная точка градусника.
- Устанавливается размер окна приложения с помощью функции setwindowsize.
- Вызывается процедура korpus для рисования корпуса градусника.
- Устанавливаются цвета пера и кисти на красный с помощью функций setpencolor и setbrushcolor.
- Циклом for от 1 до 60 рисуются части градусника, которые представляют собой дуги окружностей.
- После каждой дуги окружности с помощью функции clearwindow очищается окно приложения.
- С помощью функций setpencolor и setbrushcolor устанавливаются цвета пера и кисти на красный.
- С помощью функций rectangle и circle рисуются дуги окружностей.
- С помощью функции sleep задерживается выполнение программы.
- Завершается программа.