Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Лабораторна робота № 19 (21)






Тема: Використання процедур та функцій модуля Graph при розробці анімації.

Мета: Навчитися використовувати особливості модуля Graph при побудові рухомих зображень.

 

Хід роботи

Розробити програму рухомого об’єкту згідно свого варіанту (Див. Додаток Таблиця 8)

Приклад:

{ Рухомий об’єкт }

program titanik;

uses Graph, Crt;

Var

grDriver: integer; { драйвер }

grMode: integer; { графічний режим }

grPath: string; { місце розташування драйвера }

ErrCode: integer; { результат ініціалізації граф. режиму }

 

x, y: integer; { координати кораблика }

color: word; { колір кораблика }

bkcolor: word; { колір тла екрана }

{ Кораблик }

Procedure Titan(x, y: integer; { координати базової точки }

color: word); { колір корабля }

Const

dx=5; dy=5;

Var

OldColor: word;

Begin

OldColor: =GetColor; { зберегти поточний колір }

SetColor(color); { встановити новий колір }

{ корпус }

MoveTo(x, y);

LineTo(x, y-2*dy);

LineTo(x+10*dx, y-2*dy);

LineTo(x+11*dx, y-3*dy);

LineTo(x+17*dx, y-3*dy);

LineTo(x+14*dx, y);

LineTo(x, y);

{ надстройка }

MoveTo(x+3*dx, y-2*dy);

LineTo(x+4*dx, y-3*dy);

LineTo(x+4*dx, y-4*dy);

LineTo(x+13*dx, y-4*dy);

LineTo(x+13*dx, y-3*dy);

Line(x+5*dx, y-3*dy, x+9*dx, y-3*dy);

{ капітанський мостик }

Rectangle(x+8*dx, y-4*dy, x+11*dx, y-5*dy);

{ труба}

Rectangle(x+7*dx, y-4*dy, x+8*dx, y-7*dy);

{ іллюмінатори }

Circle(x+12*dx, y-2*dy, Trunc(dx/2));

Circle(x+14*dx, y-2*dy, Trunc(dx/2));

{ мачта }

Line(x+10*dx, y-5*dy, x+10*dx, y-10*dy);

{ облаштування }

MoveTo(x+17*dx, y-3*dy);

LineTo(x+10*dx, y-10*dy);

LineTo(x, y-2*dy);

SetColor(OldColor); { відновити поточний колір }

End;

 

Begin

Readln;

grDriver: = VGA; { режим VGA}

grMode: =VGAHi; { розширення 640х480}

grPath: =’d: \bp\bgi’; { драйвер, файл EGAVGA.BGI, знаходиться

в каталозі d: \bp\bgi }

InitGraph(grDriver, grMode, grPath);

ErrCode: = GraphResult;

if ErrCode < > grOk then Halt(1);

x: =10;

y: =200;

color: =Yellow;

SetBkColor(Blue);

bkcolor: =GetBkColor;

repeat

Titan(x, y, color); { намалювати корабель }

Delay(100);

Titan(x, y, bkcolor); { стерти корабель }

PutPixel(x, y, color); { слід від корабля }

x: =x+2;

Delay(400);

until (x> 500);

OutTextXY(10, 10, ’Рейс завершен! ’);

readln;

CloseGraph; end.

 

Контрольні питання

1. Що таке ініціалізація графіки?

2. Які параметри необхідно задати для ініціалізації графіки, що вони означають?

3. Якою процедурою заливають фон екрану?

4. Як задають кольори в графічному режимі?

5. Які параметри необхідно задати для процедури малювання еліпса, що вони означають?

6. Які параметри необхідно задати для процедури стилю шрифту, що вони означають? На які етапи можна розбити виконання функції?

7. Чим відрізняється робота процедури від роботи функції?

8. Коли варто використовувати процедуру, а коли – функцію?

 

 


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.008 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал