Графика в циклах
Тема урока:
ЦИКЛИЧЕСКИЙ
АЛГОРИТМ.
Программирование движения объекта.
Цель урока: - Научить писать программу моделирования движения.
План урока: 1. Постановка задачи
Программа с пояснениями
Набор программ на компьютере
Ход урока:
Задача: Написать программу движение
окружности и изменения её движения при
столкновении с границами окна.
-
Программа
Пояснение
Uses GraphABC, Crt;
Var x,y,dy,dx: integer;
координаты окружности и приращения
BEGIN
Rectangle(0,0,640,400);
рамка на экране
x:=300; y:=200;
начальные координаты центра окружности
dx:=10;
величина перемещения по x
dy:=10;
величина перемещения по y
Repeat
Цикл пост. условие
SetpenColor(clblack);
цвет окружности черный
SetBrushColor(clblack);
цвет круга черный
Circle(x,y,10);
рисование окружности
if y>=370 then dy:=-10;
нижний край
if y<=25 then dy:=10;
верхний край
if x>=620 then dx:=-10;
правый край
if x<=25 then dx:=10;
левый край
Delay(100);
пауза
SetpenColor(clwhite);
цвет окружности белый
SetBrushColor(clwhite);
цвет круга белый
Circle(x,y,10);
рисование окружности
x:=x+dx; y:=y+dy;
расчет новых координат
Until KeyPressed;
До тех пор пока не будет нажата клавиша
END.
Задача: Написать программу движения автомобиля с подсветкой дороги фарами.
-
Uses CRT,GraphABC;
Var u: integer;
переменная цикла
BEGIN
floodfill(1,1,clnavy);
темно-синий цвет фона
setbrushcolor(clsilver);
серебристый цвет
fillrect(1,305,640,310);
рисование дороги
u:= 1;
начальное значение
While u<=640 do
цикл до конечного значения
begin setbrushcolor(clmaroon);
кирпичный цвет
rectangle(20+u,230,80+u,270);
кабина машины
setbrushcolor(clbrown);
коричневый цвет
fillrect(10+u,255,120+u,285);
кузов машины
setbrushcolor(cldarkgray);
темно-серый цвет
circle(30+u,290,15);
колесо заднее (левое)
circle(90+u,290,15);
колесо переднее (правое)
setpencolor(clyellow);
желтый цвет
line(121 + u,260,160 + u,300);
свет фар
line( 160 + u,300,200 + u,300);
line(200 + u,300,121 + u,260);
floodfill(180 + u,299,clyellow);
заливка области освещения фарой
delay(100);
паузы в движении машины
setbrushcolor(clnavy);
темно-синий цвет
fillrect(10+u,200,210 + u,305);
очистка места расположения машины
u:=u+3; end;
изменение шага движения
END.
Задача: Написать программу управления движением шарика-круга.
-
USES GRAPHABC,CRT;
Var x,y : Integer;
c: CHAR;
символьная переменная
BEGIN
x:=300; y:=200;
координаты круга
Setbrushcolor(clblack);Circle(x,y,20);
черный шарик-круг
Repeat
c:=readkey;
чтение значения с клавиатуры
Case c of
выбор
#72: y:=y-1;
движение вверх
#80: y:=y+1;
движение вниз
#75: x:=x+1;
движение вправо
#77: x:=x-1;
движение влево
end;
Setpencolor(clwhite);
белый цвет окружности
Setbrushcolor(clwhite); Circle(x,y,20);
белый цвет круга
Setbrushcolor(clblack); Circle(x,y,20);
черный цвет круга
Until c=#27;
Нажатие клавиши ESC
END.
Задача: Написать программу часов
-
Uses GraphABC, Crt;
Const pi=3.14;
Var n,y,x,a,b,i: integer;
BEGIN
For n:=1 To 12 Do
begin a:=trunc(13-6*cos(n/6*pi)*2);
b:=trunc(38+18*sin(n/6*pi)*1.7);
gotoxy(b,a); write(n); end;
repeat
i:=-8;
repeat
SetpenColor(clNavy);
line( 300,200, 300+round(180*cos(i/5)), 200+round(150*sin(i/5)));
delay(300);
SetpenColor(clwhite);
line( 300,200, 300+round(180*cos(i/5)), 200+round(150*sin(i/5)));
SetpenColor(clNavy); SetBrushColor(clred);
Circle(300+round(180*cos(i/5)), 200+round(150*sin(i/5)), 5);
SetbrushColor(clwhite);
i:=i+1;
until i>22;
until keypressed;
END.
Тема урока: Циклы. Программирование рисунка.
Цель урока: - Показать использование функций графики в циклах.
План урока: 1. Алгоритм построение рисунка. Сценарий рисунка.
Программа рисунка для ЭВМ
Ход урока:
-
Uses Crt, GraphABC;
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>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,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.
Похожая картина в редакторе ТР
-
Uses Crt,Graph;
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;
Тема урока: ИСПОЛЬЗОВАНИЕ КЛАВИШ УПРАВЛЕНИЯ.
Цель урока: - показать коды управляющих клавиш и программу с ними.
План урока: 1. Пример программы с управляющими клавишами.
Самостоятельная работа на компьютере.
Ход урока:
USES GRAPH,CRT;
VAR i,J : INTEGER;
c: CHAR;
BEGIN
i:=detect;
initgraph(i,i,'');
i:=350; j:=250;
setcolor(14); circle(i,j,10);
repeat
c:=readkey;
case c of
#75:if i>0 then begin
setcolor(0); circle(i,j,10);
i:=i-2;
setcolor(14); circle(i,j,10);
end;
#77:if i<558 then begin
setcolor(0);circle(i,j,10);
i:=i+2;
setcolor(14);circle(i,j,10);
end;
#72:if j>0 then begin
setcolor(0);circle(i,j,10);
j:=j-2;
setcolor(14);circle(i,j,10);
end;
#80:if j<300 then begin
setcolor(0);circle(i,j,10);
j:=j+2;
setcolor(14);circle(i,j,10);
end;
#13: for r:=1 to 5 do circle(i,j,r*5);
end; {case}
until c=#27;
Readln;
END.
Примечание: 75 – стрелка влево, 77 –
стрелка вправо,
72 – стрелка вверх,
80 – стрелка вниз, 13 – клавиша
Enter
Рисование картинки с помощью окружности
Составление горизонтального или вертикального меню
Тема урока: ЦИКЛИЧЕСКИЙ АЛГОРИТМ. МОДУЛЬ GRAPH
и его ГРАФИЧЕСКИЕ ПРИМИТИВЫ. ДОПОЛНИТЕЛЬНО.
Программирование графиков.
Цель урока: - Показать использование новых функций в программах.
План урока: 1. Дополнительные графические элементы
Алгоритм построение графика..
Программа рисунка для ЭВМ
Ход урока:
|
|
|
|
|
|
|
|
|
|
|
|
USES CRT, GRAPHABC;
VAR I:INTEGER;
x,y:real;
BEGIN
line (350,20,350,320); textout(360,20,'Y');
line (200,200,500,200); textout(500,205,'X');
textout(348,190,'O');
FOR I:=1 TO 59 DO
begin
LINE(348,20+i*5,353,20+i*5);
LINE(200+i*5,196,200+i*5,203);
end;
x:=-10;
while x<15 do
begin
y:=-(3*x-18)/(5*x-4);
setpixel(round(x*11)+340,round(y*11)+205,clred);
x:=x+0.01;
end;
END.
Тема урока: ЦИКЛИЧЕСКИЙ АЛГОРИТМ. МОДУЛЬ GRAPH
и его ГРАФИЧЕСКИЕ ПРИМИТИВЫ. ДОПОЛНИТЕЛЬНО.
Программирование графиков.
Цель урока: - Показать программирование графиков .
План урока: 1. Дополнительные графические элементы
Алгоритм построение графика..
Программа рисунка для ЭВМ
Ход урока:
Задача: Построить график функции в декартовой системе координат
-
ПРОГРАММА
ПОЯСНЕНИЯ
USES CRT, GRAPHABC;
VAR I:integer;
x,y:real;
BEGIN
For i:=20 To 320 Do
SetPixel (350,i,clNavy);
Темно-синяя ось Y
Textout(360,20,'Y');
и наименование оси
For i:=200 To 500 Do
SetPixel (i, 200,clNavy);
Темно-синяя ось X
Textout(500,205,'X');
и наименование оси
Textout(348,190,'O');
наименование центра
For I:=1 To 59 Do
begin
Line(348,20+i*5,353,20+i*5);
масштабные метки оси Y
Line(200+i*5,196,200+i*5,203);
масштабные метки оси X
end;
x:=-10;
начальное значение X
While x<15 Do
конечное значение X
begin
y:=-(3*x-18)/(5*x-4);
функция
setpixel(round(x*11)+340,round(y*11)+205,clred);
рисование по точкам
x:=x+0.01;
изменение X
end;
END.
Задание: построить графики функций
, ,
,
,
На странице приведен фрагмент.
Автор: Ситников Сергей Анатольевич
→ Seansy 20.03.2009 2 4600 1349 |
Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.