Нарисовать расширяющуюся окружность. - Free Pascal
Формулировка задачи:
Не могу сделать одно олимпиадное задание:
Составьте программу по следующему сценарию: в центре экрана расположена окружность радиусом 5 пикселей. При нажатии на одну из клавиш <к>, <с>, <ж>, <з> окружность окрашивается в соответствующий цвет (красный, синий, жёлтый или зелёный) и начинает расти в диаметре до тех пор, пока не упрётся в края экрана.
Помогите, пожалуйста! Срочно!
Решение задачи: «Нарисовать расширяющуюся окружность.»
textual
Листинг программы
uses crt,graph; var x,y,x0,y0,r,c,h:integer; v,k:char; procedure Okr(r,h,c:integer); begin repeat r:=r+h; setcolor(c); circle(x0,y0,r); setfillstyle(1,c); floodfill(x0,y0,c); delay(50); circle(x0,y0,r); setfillstyle(1,0); floodfill(x0,y0,0); until r>y0; circle(x0,y0,r); setfillstyle(1,c); floodfill(x0,y0,c); end; begin x:=0; initgraph(x,y,''); x0:=getmaxX div 2; y0:=getmaxY div 2; {repeat} outtextXY(1,5,'Vyberite cvet po pervoj bukve:'); outtextXY(1,15,'russkogo nazvaniya:'); outtextXY(1,25,'krasnyj, sinyj'); outtextXY(1,35,'jeltyj, zelenyj'); outtextXY(1,45,'Vyhod - Esc'); circle(x0,y0,5); r:=5; h:=5; repeat if keypressed then begin k:=readkey; case k of 'Є':Okr(r,h,red); 'б':Okr(r,h,blue); '¦':Okr(r,h,yellow); '§':Okr(r,h,green); #27:exit end; end; until k=#27; {v:=readkey; if v=#13 then exit; until v=#13;} end.
Объяснение кода листинга программы
- Используется библиотека CRT и графическая библиотека graph.
- Задаются переменные: x, y, x0, y0, r, c, h (x, y - координаты центра окружности; x0, y0 - начальные координаты; r - радиус окружности; c - цвет заливки; h - шаг изменения радиуса).
- Определена процедура Okr, которая рисует расширяющуюся окружность с заданными параметрами.
- В основном блоке кода запрашивается цвет заливки окружности.
- Устанавливаются начальные значения переменных: x0 = maxX / 2, y0 = maxY / 2, r = 5, h = 5.
- В цикле ожидается нажатие клавиши.
- При нажатии клавиши считывается цвет и вызывается процедура Okr с соответствующим аргументом.
- Цикл продолжается до нажатия клавиши Esc.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д