Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_OT-1.doc
Скачиваний:
14
Добавлен:
17.03.2016
Размер:
1.15 Mб
Скачать

SetFillStyle (1, white);

Прямокутник із цілочисленими координатами лівого верхнього кута 100, 50 та правого нижнього кута 300, 150 креслиться командою

Rectangle (100,50,300,150);

Колоз координатами центра 300, 200 та радіусом 50 створюється командою

Circle (300,200,50);

Дуга колаз координатами центра 300, 200, із початковим й кінцевим кутом 90 й 270 градусів та радіусом 50 малюється командою

Arc (300,200,90,270,50);

Кут вимірюється як і в математиці від додатного напрямку осі абсцис проти годинникової стрілки.

Сектор кругаз координатами центра 300, 200, із початковим й кінцевим кутом 90 й 270 градусів та радіусом 50 створюється командою

PieSlice (300,200,90,270,50);

Еліптична дугаз координатами центра 300, 200, із початковим й кінцевим кутом 90 й 270 градусів та радіусом за віссю абсцис 50 й віссю ординат 150 креслиться командою

Ellipse (300,200,90,270,50,150);

Еліптичний секторіз координатами центра 300, 200, із початковим й кінцевим кутом 90 й 270 градусів та радіусом за віссю абсцис 50 й віссю ординат 150 малюється командою

Sector (300,200,90,270,50,150);

Заповнений еліпсіз координатами центра 300, 200 та радіусом за віссю абсцис 50 й віссю ординат 150 креслиться командою

FillEllipse (300,200,50,150);

Стовпець із координатами лівого верхнього кута 100, 50 та правого нижнього кута 200, 250 створюється командою

Bar (100,50,200,250);

Тривимірний стовпець із координатами лівого верхнього кута 100, 50 й правого нижнього кута 200, 250 та глибиною 10 із видимою вершиною, що задається логічною константою TopON чи її значенням True, малюється командою

Bar3D (100,50,200,250,10,TopON);

Невидима вершина використовується для розміщення стовпця один на одному і задається константою TopOFF чи її значенням False.

Ламана лінія або багатокутниквикреслюється на основі масиву координат точокx та y, які зберігаються в зарезервованому записіPointType. Багатокутник виходить, якщо координати першої та останньої точки співпадають. Для малювання необхідно також задати кількість точок (вершин) фігури

DrawPoly (<кількість точок :word>,

<масив координат точок :PointType>);

Приклад 3. Створити трикутник, контур якого має зелений колір.

Uses Graph;

Const

{ Завдання координат 4-х точок }

Triangle :array [1..4] of PointType=

((x:50; y:100), (x:100; y:100),

(x:150; y:150), (x:50; y:100));

Var

grDriver :Integer;

grMode :Integer;

ErrCode :Integer;

Begin

grDriver:= Detect;

InitGraph (grDriver, grMode,'F:\TP\BGI');

ErrCode:= GraphResult;

if ErrCode = grOk then

begin

{ Завдання зеленого кольору }

SetColor (green);

{ Креслення трикутника }

DrawPoly (4, Triangle);

Readln;

CloseGraph;

end

else

Writeln(GraphErrorMsg(ErrCode));

End.

Заповнений багатокутникмалюється при обов'язковій рівності координат першої та останньої точки

FillPoly (<кількість точок :word>,

<масив координат точок :PointType>);

1.10. Замкнуті області зображень можна заповнювати (зафарбовувати) заданим шаблоном та кольором, які встановлені командою SetFillStyle. Кордон заповнення задається кольором лінії, яка обмежує замкнуту область. Для команди заповнення необхідно вказати також координату будь-якої точки всередині області

FloodFill (<x,y :integer>,<колір кордону :word>);

Приклад 4. Заповнити червоне коло суцільним синім шаблоном.

Uses Graph;

Var

grDriver :Integer;

grMode :Integer;

ErrCode :Integer;

Begin

grDriver:= Detect;

InitGraph (grDriver, grMode,'F:\TP\BGI');

ErrCode:= GraphResult;

if ErrCode = grOk then

begin

{ Малювання кола червоним кольором }

SetColor (red);

Circle (200, 100, 50);

Readln;

{ Завдання суцільного заповнення

синім кольором }

SetFillStyle (1, blue);

{ Заповнення до червоної межі }

FloodFill (200, 100, red);

Readln;

CloseGraph;

end

else

Writeln(GraphErrorMsg(ErrCode));

End.

1.11. Приклад 5. Безперервно переміщувати червону кулю за годинниковою стрілкою паралельно сторонам екрана.

Uses Graph, Crt;

Const

Radius=20;

Var

grDriver :Integer;

grMode :Integer;

ErrCode :Integer;

Size,X,Y,I :Word;

P :Pointer;

Begin

grDriver:= Detect;

InitGraph (grDriver, grMode,'F:\TP\BGI');

ErrCode:= GraphResult;

if ErrCode = grOk then

begin

{ Малювання червоної кулі }

SetColor (red);

X:= Radius+2;

Y:= Radius+2;

Circle (X, Y, Radius);

SetFillStyle (1, red);

FloodFill (Radius, Radius, red);

{ Створення динамічної змінної }

Size:= ImageSize (0, 0, 2*X, 2*Y);

GetMem (P, Size);

GetImage (0, 0, 2*X, 2*Y, P^);

ClearDevice;

Repeat

{ Переміщення кулі вздовж верхньої сторони екрана }

for I:=1 to GetMaxX-2*X do

begin

PutImage (I, 1, P^, CopyPut);

Delay (10);

end;

{ Переміщення кулі вздовж правої сторони екрана }

for I:=1 to GetMaxY-2*Y do

begin

PutImage (GetMaxX-2*X, I, P^, CopyPut);

Delay (10);

end;

{ Переміщення кулі вздовж нижньої сторони екрана }

for I:=1 to GetMaxX-2*X do

begin

PutImage (GetMaxX-2*X-I, GetMaxY-2*Y, P^,CopyPut);

Delay (10);

end;

{ Переміщення кулі вздовж лівої сторони екрана}

for I:=1 to GetMaxY-2*Y do

begin

PutImage (1, GetMaxY-2*X-I, P^, CopyPut);

Delay (10);

end;

{ Повторення переміщень до натискання клавіші }

Until KeyPressed;

FreeMem (P, Size);

CloseGraph;

end

else

Writeln(GraphErrorMsg(ErrCode));

End.

  1. ЗАВДАННЯ НА РОБОТУ

Розробити та запустити у роботу програму на мові програмування "Паскаль", яка вирішує задачу відповідно до заданого нижче варіанта.

2.1. Безперервно переміщувати по замкнутій еліптичній траєкторії графічний об'єкт, який складається з різнокольорового заповненого трикутника та круга.

2.2. Безперервно переміщувати за зворотно-поступальною траєкторією з лівого верхнього до правого нижнього кута екрана графічний об'єкт, який складається з різнокольорового заповненого п'ятикутника та стовпця.

2.3. Безперервно переміщувати горизонтально між сторонами екрана за зворотно-поступальною траєкторією графічний об'єкт, який складається з різнокольорового заповненого шестикутника та еліпса.

2.4. Безперервно переміщувати за зворотно-поступальною траєкторією з лівого нижнього до правого верхнього кута графічний об'єкт, який складається з трьох різнокольорових концентричних кругів.

2.5. Безперервно переміщувати вертикально між сторонами екрана за зворотно-поступальною траєкторією рухомий об'єкт, який складається з різнокольорового семикутника та еліптичного сектора.

2.6. Безперервно переміщувати горизонтально за синусоїдальною зворотно-поступальною траєкторією графічний об'єкт, який складається з різнокольорового заповненого прямокутника та сектора круга.

2.7. Безперервно переміщувати вертикально за синусоїдальною зворотно-поступальною траєкторією графічний об'єкт, який складається з різнокольорового заповненого трикутника та еліпса.

2.8. Безперервно переміщувати по колу на весь екран графічний об'єкт, який складається з різнокольорового заповненого прямокутника та сектора еліпса.

2.9. Безперервно переміщувати за прямолінійною замкнутою траєкторією типу “вертикальна вісімка” на весь екран графічний об'єкт, який складається з різнокольорового стовпця та круга.

2.10. Безперервно переміщувати за прямолінійною замкнутою траєкторією типу “горизонтальна вісімка” на весь екран графічний об'єкт, який складається з двох різнокольорових концентричних кругів.

  1. КОНТРОЛЬНІ ЗАПИТАННЯ

3.1. Що називається динамічною пам'яттю.

3.2. Для чого використовується динамічна пам'ять.

3.3. Що таке динамічні змінні.

3.4. Які є типи вказівників та як вони описуються.

3.5. Якими командами виділяється та звільняється динамічна пам'ять у залежності від типу вказівників.

3.6. Як позначаються динамічні змінні у виконавчій частині програми.

3.7. Як визначити об'єм вільної динамічної пам'яттю

3.8. Як визначити об'єм неперервної ділянки динамічної пам'яті.

    1. В якій послідовності створюється рухоме зображення.

    2. Якою командою фрагмент зображення відображується з динамічної пам'яті на екран.

    3. Які є способи поєднання поточного зображення екрана із зображенням рухомого фрагмента.

    4. Який максимальний об'єм одного прямокутного фрагмента зображення, що вирізається з екрана.

    5. Якою командою задається колір та шаблон заповнення геометричних фігур.

Комп'ютерний практикум № 9

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]