Вывод на экран компьютера рисунка головы, организуя моргание глаз - Turbo Pascal
Формулировка задачи:
Создайте программу вывода на экран компьютера рисунка головы, организуя моргание глаз. Помогите пожалуйста.
Решение задачи: «Вывод на экран компьютера рисунка головы, организуя моргание глаз»
textual
Листинг программы
uses crt,graph; procedure lico(x,y:integer); begin setcolor(6); circle(x,y,100); line(x,y,x-30,y+30); line(x-30,y+30,x+5,y+30); arc(x,y-30,240,300,100); line(x-45,y+50,x-52,y+60); line(x+45,y+50,x+52,y+60); ellipse(x-110,y,0,360,10,20); ellipse(x+110,y,0,360,10,20); end; procedure glaza1(x,y:integer); begin setcolor(15); setlinestyle(0,0,1); circle(x-40,y-30,20); circle(x+40,y-30,20); setfillstyle(1,15); floodfill(x-40,y-30,15); floodfill(x+40,y-30,15); setcolor(6); circle(x-40,y-30,20); circle(x+40,y-30,20); setcolor(9); circle(x-40,y-22,10); circle(x+40,y-22,10); setfillstyle(1,9); floodfill(x-40,y-24,9); floodfill(x+40,y-24,9); end; procedure glaza2(x,y:integer); begin setcolor(6); setlinestyle(0,0,3); arc(x-40,y-30,180,360,20); arc(x+40,y-30,180,360,20); end; var xc,yc,i:integer; begin initgraph(xc,yc,''); xc:=getmaxX div 2; yc:=getmaxY div 2; lico(xc,yc); glaza1(xc,yc); i:=0; repeat delay(500); cleardevice; i:=i+1; lico(xc,yc); if odd(i) then glaza2(xc,yc) else glaza1(xc,yc); until keypressed end.
Объяснение кода листинга программы
- В начале кода используются библиотеки crt и graph.
- В процедуре lico задается цвет фона и рисуется круг с радиусом 100, а также две линии и эллипс.
- В процедуре glaza1 рисуются два круга с радиусом 20, а также заполняются два прямоугольника цветом 15.
- В процедуре glaza2 рисуется арка с радиусом 20.
- Переменные xc, yc и i инициализируются как полусумма максимальных координат x и y.
- Функция initgraph устанавливает координаты xc и yc для использования в последующих вызовах функций графического интерфейса.
- Затем вызывается функция lico, которая рисует круг и две линии.
- Если текущий индекс i нечетный, то вызывается функция glaza2, а если четный - функция glaza1.
- Код повторяется до тех пор, пока не будет нажата клавиша.
- После этого экран очищается и цикл повторяется.