Графика в циклах


Тема урока: ЦИКЛИЧЕСКИЙ АЛГОРИТМ.
Программирование движения объекта.

Цель урока: - Научить писать программу моделирования движения.

План урока: 1. Постановка задачи

  1. Программа с пояснениями

  2. Набор программ на компьютере


Ход урока:

Задача: Написать программу движение окружности и изменения её движения при
столкновении с границами окна.


Программа

Пояснение

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. Алгоритм построение рисунка. Сценарий рисунка.

  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. Пример программы с управляющими клавишами.

  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. Дополнительные графические элементы

  1. Алгоритм построение графика..

  2. Программа рисунка для ЭВМ


Ход урока:
















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. Дополнительные графические элементы

  1. Алгоритм построение графика..

  2. Программа рисунка для ЭВМ


Ход урока:

Задача: Построить график функции в декартовой системе координат


ПРОГРАММА

ПОЯСНЕНИЯ

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 4578 1349

Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.



А вы знали?

Инструкции по ПК