Тема урока: Циклы. Программирование рисунка.
Цель урока: — Показать использование функций графики в циклах.
План урока: 1. Алгоритм построение рисунка. Сценарий рисунка.
Программа рисунка для ЭВМ
Ход урока:
| |
Var x,i,y,r:integer; |
|
BEGIN |
|
Floodfill(1,1,clnavy); | темно-синий фон |
Рисование тучи | |
randomize; |
|
setbrushcolor(cllightgray); | светло-серый круг |
setpencolor(cldarkgray); | темно-серая окружность |
For x:=100 To 400 Do |
|
ellipse(x,random(30)+10,x+50,random(70)); | эллипс разного размера |
Рисование дождя | |
setpencolor(clgray); | серый цвет |
x:=120; |
|
Repeat |
|
line(x,80,x+20,random(120)+120); | линии дождя |
x:=x+10; |
|
delay(10); |
|
Until x>400; |
|
Рисование стены дома | |
x:=350; |
|
y:=360; |
|
repeat |
|
repeat |
|
setpencolor(clmaroon); | кирпичный цвет |
fillrect(x+2,y+2,x+51,y+11); | блоки дома по вертикали |
setpencolor(clLightgray); | светло-серый цвет |
rectangle(x,y,x+50,y+10); | раствор между кирпичами |
y:=y-10; |
|
delay(50); |
|
until y<200; |
|
y:=360; x:=x+50; | и по горизонтали |
until x>50; |
|
Рисование украшение на дом виде кружков | |
y:=200; r:=15; |
|
repeat |
|
setbrushcolor(clOlive); | Оливковый цвет |
circle(350,y,r); | круги слева |
circle(550,y,r); | круги справа |
y:=y+20; | увеличение Y вниз |
r:=r-2; | уменьшение радиуса |
delay(10); | пауза |
until y>280; |
|
Рисование крыши | |
x:=10; |
|
For y:=200 Downto 100 Do |
|
begin |
|
setpencolor(clpurple); |
|
Line(300+x,y,600-x,y); | трапеция |
x:=x+1; |
|
delay(50); |
|
end; |
|
Рисование окна | |
For y:=300 Downto 230 Do |
|
begin |
|
setpencolor(clyellow); | Желтый цвет |
fillrect(410,y,480,y-10); | фон окна |
delay(10); |
|
end; |
|
Рисование ступенек | |
x:=520; y:=330; |
|
while X<=610 do |
|
begin |
|
setbrushcolor(clSkyBlue); | Небесно-голубой цвет |
rectangle (x,y,x+30,y+10); | ступенька |
x:=x+30; |
|
y:=y+10; |
|
delay(10); |
|
end; |
|
Рисование фонаря | |
For r:=1 To 9 Do |
|
begin |
|
setpencolor(clfuchsia); | фиолетовый цвет |
arc(580,280,r*2,0,360); | фонарь из кругов |
Line(540,290+r,580,295+r); | подставка |
delay(10); |
|
end; |
|
Рисование забора | |
x:=50; |
|
While x<400 Do |
|
begin |
|
setpencolor(clred); | Красный цвет |
rectangle(x-2,258,x+32,372); | контур забора |
setbrushcolor(clgray); | серый цвет |
fillrect(x,260,x+30,370); | фон забора |
x:=x+40; |
|
delay(10); |
|
end; |
|
Рисование ёлки | |
For I:=120 Downto 0 Do |
|
begin |
|
Setpencolor(clgreen); | зеленый цвет |
Line(80+random(i-1),260+i,80-random(i-1),260+i); | ветки ёлки |
Setpencolor(clbrown); | коричневый цвет |
Line(80,270+i,85,270+i); | ствол ёлки |
Setpencolor(cllime); | Салатный цвет |
Line(80-random(i-1),250+i,80+random(i+1),250+i); | ветки елки |
delay(10); |
|
end; |
|
END. |
|
Похожая картина в редакторе ТР
| |
Var x,i,y,r:integer; |
|
BEGIN |
|
i:=detect; |
|
InitGraph(i,i,’); |
|
randomize; |
|
setbkcolor(1); | цвет фона (синий) |
setcolor(8); | цвет эллипса (серый) |
setfillstyle(1,7); | стиль (сплошной, св.серый) |
эллипсовидные тучи |
|
For x:=100 To 400 Do |
|
begin |
|
fillellipse(x,random(50)+40,random(40),random(20)); | случайное построение эллипса |
delay(2500); | пауза в выполнении |
end; |
|
setcolor(3); |
|
дождь с помощью линий |
|
x:=120; |
|
Repeat |
|
line(x,100,x+20,random(120)+120); | линии случайной длины |
delay(2300); | пауза в выполнении |
x:=x+10; | увеличение х на 10 |
Until x>400; |
|
забор с контуром и фоном |
|
x:=100; |
|
While x<500 Do |
|
begin |
|
setcolor(15); |
|
rectangle(x-2,258,x+32,372); | контур прямоугольника |
setfillstyle(random(10)+1,random(16)+3); |
|
bar(x,260,x+30,370); | фон прямоугольника |
x:=x+40; end; |
|
нечто зеленое и дом |
|
For y:=400 Downto 200 Do |
|
begin |
|
setcolor(2); | установка зеленого цвета |
line(random(100)+100,y,random(200),y); |
|
delay(2000); | пауза в выполнении |
setcolor(6); | установка коричневого цвета |
line(500,y,620,y); end; |
|