Конспект урока на тему Циклы. Программирование рисунка
Тема урока: Циклы. Программирование рисунка.
Цель Урока: - Показать использование функций графики в циклах.
План Урока: 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 |
|
y:=360; x:=x+50; |
И по горизонтали |
Until x>500; |
|
Рисование украшение на дом виде кружков |
|
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,r2,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 xDo |
|
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; |