p> BEGIN
Grlnit;
{ініціалізація графіки}
SetFiUStyle (InterleaveFill, Red);
{завдання шаблону}
{малювання заданої фігури}
FillPoly ( SizeOf (our.figure) div SizeOf (PointType), our_figure);
ReadLn;
CloseGraph
END.
Функція SizeOf (our_figure) повертає розмір константи our_figure в байтах, a SizeOf (PointType) - розмір пам'яті, займаний одним елементом типу PointType. І, нарешті, універсальна процедура
FloodFilt (X, Y : Integer ; Border : Word )
Вона заливає всю область навколо точки (X, Y), обмежену лініями кольору Border. Наприклад, якщо точка (X, Y) знаходиться всередині області, обмеженої колом, то вся область буде залита за шаблоном і кольором, встановленими процедурами SetFillPattern або SetFillStyle. Якщо ж точка буде перебувати поза цій галузі, то залитим буде весь екран за винятком цієї області. Якщо область не замкнута суцільною лінією або межами екрану, то по шаблоном заповниться весь екран. <В
Опитування і установка квітів пера і фону
Різні адаптери підтримують різну кількість квітів, виведених одночасно на екран у графічному режимі. Але для всіх BGI-драйверів воно обмежене діапазоном 0 .. 15. Нумерація і назви кольорів збігаються з тими, які були наведені для текстових квітів, а імена констант, що позначають кольори (за винятком Blink), продубльовані в модулі Graph.
Максимальний номер кольору, що сприймається даним адаптером в поточному графічному режимі, може бути отриманий за допомогою функції
GetMaxColor : Word
На екрані завжди розрізняються колір фону і колір пера. Всі процедури зображення фігур, якщо не містять в собі явної установки кольору, малюють ці фігури кольором пера (як символи в текстовому режимі). Цей колір встановлюється процедурою
SetColor (Color: Word )
Колір фону - завжди єдиний у полі екрана. Він може бути змінений процедурою
SetBkColor (Color: Word )
Після використання цієї процедури колір екрану відразу ж міняється на заданий. Параметр Color не повинен перевищувати поточне значення GetMaxColor . Кольором фону може бути будь-який з дозволених кольорів, в тому числі і яскравий. Типово і при реініціалізаціі графіки колір фону дорівнює 0 (Black), а колір пера дорівнює значенню функції GetMaxColor .
Завжди можна опитати поточні установки кольору. p> Функція GetColor : Word повертає значення поточного кольору пера, а функція GetBkColor : Word повертає поточний колір фону.
В
Управління палітрою
Палітра і її аналіз . Максимальний набір квітів, підтримуваних одночасно BGI-драйвером, називається палітрою і може складатися з 16 кольорів, пронумерованих від 0 до 15 (так буде, наприклад, для графічних адаптерів EGA, VGA).
Ці шістнадцять квітів використовуються за замовчуванням в режимах 640x480 для VGA, 640x350, 640x200 і 320x200 для EGA як у текстовому, так і в графічному режимах.
Числа від 0 до 15, які використовуються для позначення квітів, визначають колірні атрибути або, як їх ще називають, В«програмніВ» кольору. Кожному програмному кольором присвоюється В«апаратнийВ» колір з так званої повної палітри. Наприклад, для адаптера EGA, що виводить одночасно до 16 кольорів, програмні кольору вибираються з повною палітри в 64 кольори, наявної в цьому адаптері. А в адаптері VGA апаратна палітра містить 256 кольорів. Для управління відповідністю між програмними і апаратними квітами в модулі Graph передбачено низку процедур, що охоплюють практично всі можливі операції з палітрою.
Розглянемо процедури, за допомогою яких можна отримати системну інформацію про неї. У модулі Graph визначений тип для опису палітри:
CONST
MaxColors = 15; {максимальний програмний номер кольору}
TYPE PaletteType = RECORD
Size
: Byte;
{розмір програмної палітри}
Colors: Array [0 .. MaxColors] of Shortlnt;
END ;
Поле Size містить кількість квітів у палітрі, а поле Colors місти...