Рефераты. Побудова динамічної графіки

Функція GetMaxColor.

Повертає значення типу Word, що містить максимальний доступний код кольору, який можна використовувати для звернення до SetColor.

Заголовок:

Function GetMaxColor: Word;

Процедура SetBkColor.

Встановлює колір фону.

Заголовок: 

Procedure SetBkColor(Color: Word);

Тут Color - колір фону.

На відміну від текстового режиму, в якому колір фону може бути тільки темного відтінку, в графічному режимі він може бути будь-ким. Установка нового кольору фону негайно змінює колір графічного екрану. Це означає, що не можна створити зображення, дві ділянки якого мали б різний колір фону. Для CGA -адаптера в режимі високого розширення установка кольору фону змінює колір активних пікселів. Після заміни кольору фону на будь-який, відмінний від 0 (Black) колір, Ви не зможете більш використовувати колір 0 як чорний, він замінюватиметься на колір фону, оскільки процедури модуля Graph інтерпретують колір з номером 0 як колір фону. Це означає, зокрема, що Ви вже не зможете повернути фону чорний колір!

Функція GetBkColor.

Повертає значення типу Word, що містить поточний колір фону. Заголовок:

Function GetBkColor: Word;

Процедура SetPalette.

Замінює один з кольорів палітри на новий колір.

Заголовок:

Procedure SetPalette(N: Word; Color: Shortlnt);

Тут N - номер кольору в палітрі; Color - номер знов встановлюваного кольору.

Дана процедура може працювати тільки з адаптерами EGA або VGA. Вона не повинна використовуватися з IBM8514 або 256-кольоровим варіантом VGA - для цих адаптерів призначена особлива процедура SetRGBPalette (див. нижче). Первинне розміщення кольорів в палітрах EGA/VGA відповідає послідовності їх опису константами Black....White, тобто колір з індексом 0 - чорний, 1 - синій, 2 - зелений і т.д. Після звернення до процедури всі фрагменти зображення, виконані кольором з індексом N з палітри кольорів, одержать колір Color. Наприклад, якщо виконати оператор

SetPalette(2,White);

то колір з індексом 2 (первинно це - бірюзовий колір Cyan) буде замінений на білий. Колір з індексом 0 ототожнюється з кольором фону і може змінюватися разом з будь-яким іншим кольором.

Процедура GetPalette.

Повертає розмір і кольори поточної палітри.

Заголовок:

Procedure GetPalette(var Palettelnfo: PaletteType);

Тут Palettelnfo - змінна типа PaletteType, що повертає розмір і кольори палітри.

В модулі Graph визначена константа

const

MaxColors =15; 

і тип

type

PaletteType = record

Size : Word; {Кількість кольорів в палітрі} 

Colors : array [0..MaxColors] Shortlnt

{Номери вхідних в палітру кольорів}

end;

Процедура SetAllPalette.

Змінює одночасно декілька кольорів палітри.

Заголовок процедури:

Procedure SetAllPalette(var Palette);

Параметр Palette в заголовку процедури описаний як параметр, що не типізується. Перший байт цього параметра повинен містити довжину N палітри, решта N байтів - номери знов встановлюваних кольорів в діапазоні від -1 до MaxColors. Код -1 означає, що відповідний колір початкової палітри не міняється.

Функція GetPaletteSize.

Повертає значення типу Integer, що містить розмір палітри (максимальна кількість доступних кольорів).

Заголовок:

Function GetPaletteSize: Integer;

Процедура GetDefaultPalette.

Повертає структуру палітри, встановлювану за змовчуванням (в режимі автонастройки).

Заголовок:

Procedure GetDefaultPalette(var Palette: PaletteType);

Тут Palette - змінна типа PaletteType (див. процедуру GetPalette), в якій повертаються розмір і кольори палітри.

Процедура SetFillStyle.

Встановлює стиль (тип і колір) заповнення.

Заголовок:

Procedure SetFillStyle(Fill,Color: Word);

Тут Fill - тип заповнення; Color - колір заповнення.

За допомогою заповнення можна покривати які-небудь фрагменти зображення узором, що періодично повторюється. Для вказівки типу заповнення використовуються наступні заздалегідь певні константи:

const

EmptyFill = 0;{Заповнення фоном (узор відсутній)} 

SolidFill = 1;{Суцільне заповнення}

LineFill = 2;{Заповнення -------}

LtSlashFill = 3;{Заповнення ///////}

SlashFill = 4;{Заповнення потовщеними ///}

BkSlashFill = 5;{Заповнення потовщеними \\\}

LtBkSlashFill = 6;{Заповнення \\\\\\\}

HatchFill = 7;{Заповнення +++++++}

XHatchFill = 8;{Заповнення ххххххх}

InterleaveFill= 9;{Заповнення прямокутну клітинку}

WideDotFill = 10;{Заповнення рідкісними крапками}

CloseDotFill = 11;{Заповнення частими крапками}

UserFill = 12;{Узор визначається користувачем}

Процедура SetFillPattern.

Встановлює зразок малюнка і колір штрихування. Заголовок:

Procedure SetFillPattern(Pattern: FillPatternType;Color: Word);

Тут Pattern - вираз типу FillPatternType; встановлює зразок малюнка для Fill - UserFill в процедурі SetFillStyle; Color - колір заповнення.

Зразок малюнка задається у вигляді матриці з 8x8 пікселів і може бути представлений масивом з 8 байт наступного типу:

type

FillPatternType = array [1..8] Byte;

Кожний розряд будь-якого з цих байтів управляє світимістю пікселя, причому перший байт визначає 8 пікселів першого рядка на екрані, другий байт - 8 пікселів другого рядка і т.д.

Процедура GetFillPattern.

Повертає зразок заповнення, встановлений раніше процедурою SetFillPattern. Заголовок:

Procedure GetFillPattern(var Pattern: FillPatternType);

Тут Pattern - змінна типа FillPatternType, в якій повертається зразок заповнення.

Якщо програма не встановлювала зразок за допомогою процедури SetFillPattern, масив Pattern заповнюється байтами із значенням 255 ($FF).

Процедура GetFillSettings.

Повертає поточний стиль заповнення. Заголовок:

Procedure GetFillSettings(var Pattlnfo: FillSettingsType);

Тут Pattlnfo - змінна типа FillSettingsType, в якій повертається поточний стиль заповнення.

В модулі Graph визначений тип:

type

FillSettingsType = record

Pattern: Word; {Зразок}

Color : Word {Колір} 

end;

Поля Pattern і Color в цьому, записі мають те ж призначення, що і аналогічні параметри при зверненні до процедури SetFillStyle.

Процедура SetRGBPalette.

Встановлює колірну гамму при роботі з дисплеєм IBM 8514 і адаптером VGA. Заголовок:

Procedure SetRGBPalette(ColNum,RedVal, GreenVal,BlueVal:Integer);

Тут ColNum - номер кольору; RedVal, GreenVal, BlueVal - вирази типу Integer, що встановлюють інтенсивність відповідно червоній, зеленій і сині складових кольору.

Ця процедура може працювати тільки з дисплеєм IBM 8514, а також з адаптером VGA, що використовує відеопам'ять об'ємом 256 Кбайт. В першому випадку параметр ColNum задається числом в діапазоні 0...255, в другому - в діапазоні 0...15. Для установки інтенсивності використовуються 6 старших розрядів молодшого байта будь-якого з параметрів RedVal, GreenVal, BlueVal.

Процедура FloodFill.

Заповнює довільну замкнуту фігуру, використовуючи поточний стиль заповнення (узор і колір). Заголовок:

Procedure FloodFill(X,Y: Integer; Border: Word);

Тут X, Y- координати будь-якої точки всередині замкнутої фігури; Border - колір граничної лінії.

Якщо фігура незамкнута, заповнення «розіллється» по всьому екрану.

Слід врахувати, що реалізований в процедурі алгоритм проглядання меж замкнутої фігури не відрізняється досконалістю. Зокрема, якщо виводяться підряд два порожні рядки, заповнення припиняється. Така ситуація звичайно виникає при заповненні невеликих фігур з використанням типу LtSlashFill. У фірмовому керівництві по Турбо Паскалю рекомендується, по можливості, замість процедури FloodFill використовувати FillPoly (заповнення прямокутника).

Процедура Bar.

Заповнює прямокутну область екрану.

Заголовок: 

Procedure Bar(X1,Y1,X2,Y2: Integer);

Тут XJ...Y2 - координати лівого верхнього (X1, Y1) і правого нижнього (Х2, Y2) кутів закрашуваної області.

Процедура закрашує (але не обводить) прямокутник поточним зразком узору і поточним кольором, які встановлюються процедурою SetFillStyle.

Процедура Ваr3D.

Викреслює тривимірне зображення паралелепіпеда і закрашує його передню грань . Заголовок:

Procedure Ваr3D (X1,Y1,X2,Y2,Depth: Integer; Top: Boolean);

Тут X1... Y2 - координати лівого верхнього (X1, Y1) і правого нижнього (Х2, Y2) кутів передньої грані; Depth - третє вимірювання тривимірного зображення («глибина») в пікселях; Тор - спосіб зображення верхньої грані.

Якщо параметр Тор має значення True, верхня грань паралелепіпеда викреслюється, інакше - не викреслюється (цей варіант використовується для зображення поставлених один на одного паралелепіпедів). Як значення цього параметра може використовуватися одна з наступних констант, визначених в модулі Graph:

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.