Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема 9. Основні заходи пожежної профілактики на галузевих об’єктах




End.

Repeat

Begin

End.

Repeat

Begin

gd:=detect; initgraph(gd,gm,' ');

 

{радиус окружности должен быть кратен шагу смещения}

x:=100;y:=100; rx:=300; ry:=300; dx:=2;dy:=0; rad:=4;

setlinestyle(0,0,3);

rectangle(x,y,x+rx,y+ry);

 

x1:=x+rad; y1:=y+rad;

x,y x1,y1   x+rx,y+ry
setlinestyle(0,0,1);

 
 


{рисуем окружность желтым цветом}

setcolor(14);

circle(x1,y1,rad); delay(500);

 
 


{стираем – рисуем черным цветом}

setcolor(0);

circle(x1,y1,rad);

 

{определяем новые координаты центра окружности}

x1:=x1+dx; y1:=y1+dy;

 

{определяем направление движения}

if (x1+rad=x+rx) and (y1=y+rad) then begin dx:=0; dy:=2; end;

if (x1+rad=x+rx) and (y1=y+ry-rad) then begin dx:=-2; dy:=0; end;

if(x1=x+rad) and (y1=y+ry-rad) then begin dx:=0; dy:=-2; end;

if(x1=x+rad) and (y1=y+rad) then begin dx:=2; dy:=0; end;

until keypressed;

 

closegraph;

Используя коды клавиш, можно организовать движение объектов на экране по восьми направлениям. Вообще то, можно использовать любые клавиши, но возьмем более подходящие: #71 (Home), #73 (Page Up), #81(Page Down), #79 (End), #72 (↑), #80 (↓), #75 (←), #77 (→). Коды указанных клавиш являются расширенными, т.е. занимают два байта памяти (в старшем хранится код 0), поэтому процедура чтения кода клавиши readkey применяется два раза, если код первого байта равен 0. выход из программы можно организовать с помощью клавиши Esc (код #27)

 

Пример 2. Организовать движение окружности в прямоугольной области

 

program boll2;

uses graph,crt;

var gd,gm,x,y,rx,ry, rad,x1,y1,step:integer; ch:char;

gd:=detect; initgraph(gd,gm,' ');

x:=100;y:=100; rx:=300; ry:=300; step:=2; rad:=20;{radius kraten shagu}

setlinestyle(0,0,3);

rectangle(x,y,x+rx,y+ry);

x1:=x+rad; y1:=y+rad;

setlinestyle(0,0,1);

 

{рисуем окружность желтым цветом}

setcolor(14);

circle(x1,y1,rad);

 

{Определяем код нажатой клавиши}

ch:=readkey;

if ch=#0 then ch:=readkey;

{стираем – рисуем черным цветом}

setcolor(0);

circle(x1,y1,rad);

 

{смещаем центр окружности}

case ch of

#75: x1:=x1-step;

#77: x1:=x1+step;

#72: y1:=y1-step;

#80: y1:=y1+step;

#71: begin x1:=x1-step; y1:=y1-step; end;

#73: begin x1:=x1+step; y1:=y1-step; end;

#79: begin x1:=x1-step; y1:=y1+step; end;

#81: begin x1:=x1+step; y1:=y1+step; end;

end;

 

{определяем границы прямоугольной области, за которые «выходить» нельзя}

if (x1+rad>=x+rx) then x1:=x+rx-rad;

if (x1-rad<=x) then x1:=x+rad;

if (y1+rad>=y+ry) then y1:=y+ry-rad;

if (y1-rad<=y) then y1:=y+rad;

until ch=#27;

 

closegraph;




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 282; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.