Практична
робота №23
МЕТА: Ознайомитись з методами створення рухомих графічних
об’єктів . Набути практичних навичок створення програм з рухомими графічними
об’єктами .
Теоретичні відомості
Для того, щоб створити об’єкт який
рухається по складній траєкторії, наприклад по колу , необхідно виконати послідовність наступних
дій :
Ø Розрахувати координати розміщення об’єкта
(вони повинні бути цілого типу, тому бажано використати функцію TRUNC або подібну);
Ø намалювати об’єкт ;
Ø затримати його зображення на екрані;
Ø витерти об’єкт;
Ø повторити дану послідовність дій ( координати
розраховуються з невеликим зміщенням в потрібному напрямку )
Як приклад розглянемо рух по колу . Складемо програму що намалює 60 крапок
по колу з радіусом 120 точок і з центром в центрі екрану.
Program CYFERBAT;
Uses CRT,
GRAPH;
VAR
Gd, Gm, I , X, Y : Integer;
Begin
CLRSCR;
Gd:=Detect;
InitGRAPH(
Gd, Gm, 'D:/TP5/BGI');
For i:=1 to 60 do
Begin
X:=320+TRUNC( 120*Cos(i*Pi/30) );
Y:=240+ TRUNC( 120*Sin(i*Pi/30) );
PutPixeL( x , y ,14 );
End;
Щоб створити рух необхідно намалювати об’єкт, затримати на екрані,
замалювати кольором екрану . Створимо рух секундної стрілки, радіус стрілки
нехай буде 110.Один кінець лінії знаходиться в центрі екрану (320,240) , інший переміщається по 60 точках, що
розміщені на колі. Вставимо нижче
наведений фрагмент у виділене місце програми.
I:=0 ;
REPEAT
X:=320+TRUNC( 110*Cos(i*Pi/30) );
Y:=240+ TRUNC( 110*Sin(i*Pi/30) );
SetColor(14);
LINE (320 , 240 , x, y);
DELAY(3000);
SetColor(0);
LINE (320 , 240 , x, y);
i:=i+1;
IF i=60 then i:=0;
UNTIL KeyPressed;
Для того щоб і не досягало дуже великих значень доставлено наступний
умовний оператор:
IF
i=60 then i:=0;
Хід роботи
1.
Написати в редакторі програму CYFERBAT.
2.
Записати її як файл в бібліотеку.
3.
Добавити фрагмент, що забезпечує рух стрілки.
4. Запустити на виконання .
5. Доробити циферблат,
щоб на ньому були відмітки рисочками , через кожні 5 секунд.
6. У зошити записати
текст програми.
7. Доробити програму
так, щоб на екрані була ще й хвилинна стрілка, яка зміщувалась при повному
проходження секундною стрілкою кола.
Додаткове завдання:
Доробити
програму , щоб можна було задавати початкові умови (наставляти хвилинну
стрілку).
Додаткові матеріали:
Файл практичної роботи
Завдання самостійної роботи №4
Додаткові матеріали:
Файл практичної роботи
Завдання самостійної роботи №4