Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
listing_2003_7.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
233.98 Кб
Скачать

3.3. Использование процедур PieSlice, FloodFill

Задание 3.3.1. Нарисовать любимого литературного героя или героя любимого кинофильма (мультфильма) либо создать автопортрет. Приведенная ниже программа рисует портрет Барта Симпсона.

uses

graph, crt;

const

x=235;

y=32;

var

error, gd, gm, i: integer;

begin

gd:=vga;

gm:=vgahi;

initgraph(gd, gm, 'd:\bp\bgi');

error:=graphresult;

if error<>grok then

begin

writeln('Ошибка открытия графики');

halt(1)

end;

setfillstyle(1, white);

floodfill(1, 1, white); {Фон экрана}

setcolor(black); {Голова}

moveto(x, y);

lineto(x+5, y+8); {Волосы}

for i:=1 to 14 do

begin

x:=x+5;

if i mod 2 <>0 then lineto(x, y+8) else lineto(x, y)

end;

lineto(301, 84);

moveto(235, 32);

lineto(239, 57);

arc(240, 62, 94, 250, 6); {Бровь}

arc(250, 74, 40, 250, 15); {Левый глаз}

arc(252, 81, 0, 198, 4);

circle(273, 74, 16); {Правый глаз}

circle(277, 80, 4);

arc(253, 88, 45, 270, 8); {Нос}

moveto(253, 97);

lineto(260, 97);

moveto(239, 85);

lineto(239, 100);

arc(258, 95, 193, 270, 19); {Улыбка}

moveto(259, 114);

lineto(284, 114);

arc(282, 95, 276, 329, 19);

moveto(268, 103);

lineto(280, 106);

arc(302, 93, 245, 110, 9); {Ухо}

arc(300, 96, 20, 85, 7);

arc(270, 116, 150, 240, 6); {Шея}

arc(263, 133, 17, 85, 13);

arc(314, 100, 188, 240, 12);

arc(312, 157, 93, 144, 47);

setfillstyle(1, yellow); {Закраска лица}

floodfill(260, 50, black);

setfillstyle(1, black); {Зрачки}

floodfill(252, 78, black);

floodfill(277, 80, black);

setcolor(black);

arc(312, 158, 93, 144, 47); {Горловина футболки}

arc(297, 139, 148, 200, 25); {Левая часть футболки}

arc(300, 177, 130, 200, 41);

arc(269, 140, 349, 39, 50); {Правая часть футболки}

arc(385, 137, 191, 226, 67);

arc(273, 150, 255, 283, 42); {Низ футболки}

arc(322, 109, 261, 283, 79);

ellipse(300, 146, 15, 176, 15, 20); {Рукав}

line(285, 146, 315, 146);

arc(246, 161, 320, 19, 46); {Левая сторона руки}

arc(263, 160, 310, 20, 54); {Правая сторона руки}

arc(302, 178, 209, 272, 25); {Карман}

setfillstyle(1, lightred);

floodfill(300, 120, black); {Закраска футболки}

floodfill(300, 143, black);

setcolor(yellow);

setfillstyle(1, yellow);

floodfill(300, 150, black); {Закраска руки}

setcolor(black); {Шорты}

arc(290, 184, 190, 230, 30); {Левая штанина шорт}

line(270, 207, 269, 218);

line(297, 225, 295, 251);

line(269, 218, 300, 225); {Низ левой штанины}

arc(296, 162, 240, 281, 43); {Складка кармана}

line(307, 215, 300, 225); {Левая нога}

line(272, 219, 274, 251);

arc(284, 211, 253, 289, 42); {Левый носок}

arc(282, 257, 155, 200, 12);

arc(286, 255, 340, 23, 12);

arc(283, 222, 253, 289, 41);

arc(280, 285, 98, 163, 23); {Левый ботинок}

arc(280, 275, 350, 45, 20);

arc(278, 221, 252, 293, 62);

arc(278, 226, 252, 293, 62); {Подошва левого ботинка}

line(258, 281, 258, 284);

line(301, 280, 301, 284);

arc(305, 179, 278, 350, 35); {Шорты, правая штанина}

line(332, 202, 334, 220);

line(307, 215, 308, 223);

line(334, 220, 308, 223); {Низ правой штанины}

line(332, 221, 332, 251); {Правая нога}

line(309, 224, 311, 251);

arc(322, 208, 254, 287, 45); {Правый носок}

arc(322, 255, 155, 200, 12);

arc(323, 255, 340, 23, 12);

arc(322, 223, 253, 289, 39);

arc(314, 273, 98, 213, 11); {Правый ботинок}

arc(320, 275, 359, 45, 20);

arc(318, 222, 256, 293, 59); {Подошва правого ботинка}

arc(318, 227, 256, 293, 59);

line(341, 277, 341, 281);

line(303, 279, 304, 283);

setcolor(lightblue); {Закрашиваем}

setfillstyle(1, lightblue);

floodfill(272, 218, black); {шорты}

floodfill(278, 276, black); {левый ботинок}

floodfill(322, 267, black); {правый ботинок}

setcolor(yellow);

setfillstyle(1, yellow);

floodfill(275, 221, black); {левую ногу}

floodfill(322, 224, black); {правую ногу}

setcolor(white);

setfillstyle(1, white);

pieslice(320, 274, 0, 360, 3); {Белое пятнышко на правом ботинке}

readln;

closegraph;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]