Графіка в турбо Паскалі

На відміну від уже знайомого текстового режиму, екран в графічному режимі розбитий на велику кількість точок, кожна з яких може мати певний колір. Точки вважаються однаковими і прямокутними, всі вони щільно «укладені» на екрані, тобто для будь-якої точки можна вказати, в якому рядку і в якому стовпці вона знаходиться. Номери рядків і стовпців в графічному режимі використовуються як координати точки, отже, координати завжди цілочисельні. У графічному режимі початок координат знаходиться в лівому верхньому кутку екрану, вісь x спрямована вправо, вісь y спрямована вниз.

Зауважимо, що існують різні графічні режими, вони відрізняються кількістю точок по горизонталі і вертикалі (дозволом), а також кількістю можливих кольорів, наприклад: 320 x 200 x 16, 640 x 480 x 16, 640 x 200 x 16, 800 x 600 x 256 і т. п.

Всі кошти для роботи з графікою міститися в стандартному модулі Graph. тому його потрібно буде згадувати після слова uses.

1. Включення і вимикання графічного режиму.

Для включення графічного режиму використовується процедура InitGraph (driver. Mode. Path) опишемо призначення її параметрів:

Зазвичай для включення графіки ми будемо використовувати InitGraph в такому вигляді:

const gpath = 'Y: \ WIN_APPS \ BP \ BGI'

var gd, gm: integer;

Для завершення роботи з графікою і виходу в текстовий режим використовується процедура CloseGraph.

2. Побудова елементарних зображень

Система координат при роботі з графікою має початок (точку (0,0)) в лівому верхньому кутку екрану. Ось x спрямована вправо, вісь y - вниз. Очевидно, що всі точки екрану мають цілочисельні координати.

При побудові найпростіших елементів зображень використовуються такі процедури і функції:

Всі наведені вище процедури для малювання виконують тільки контурні малюнки (НЕ зафарбовуючи прямокутник, коло або еліпс всередині). За замовчуванням малювання відбувається з використанням тонкої суцільної лінії, проте товщину і вид лінії можна змінювати за допомогою процедури SetLineStyle (style. Pattern. Width. Word). Розглянемо призначення параметрів цієї процедури.

1. style - вид лінії. Тут зручно задавати не конкретні числа, а константи: SolidLn. DottedLn. CenterLn. DashedLn. UserBitLn. Перша позначає суцільну лінію, наступні три - різні види переривчастих ліній, остання - лінію, вид якої визначається користувачем (див. Нижче).

2. pattern - зразок для виду лінії, що визначається користувачем. Цей параметр набуває чинності лише тоді, коли в попередньому вказано UserBitLn. Зразок - це фрагмент лінії, заданий у вигляді числа. Перехід від конкретного фрагмента до числа виконується, наприклад, так:

Найзручніше переводити отримане число в шістнадцятковий вид, в нашому прикладі вийде $ 999 C. При зображенні лінії закодований нами фрагмент буде повторюватися стільки разів, скільки потрібно.

3. width - товщина лінії. Можна використовувати числа, проте визначені 2 константи: NormWidth і ThickWidth (нормальна і товста лінії).

Перейдемо тепер до малювання зафарбованих фігур. За замовчуванням внутрішня область фігури буде зафарбовувати білим кольором, причому зафарбування буде суцільний. Для управління кольором і видом зафарбовування використовується процедура SetFillStyle (style. Color. Word); Також як і для стилю лінії, для style передбачені константи: EmptyFill, SolidFill, LineFill, LtSlashFill, SlashFill, BkSlashFill, LtBkSlashFill, HatchFill, XHatchFill, InterleaveFill, WideDotFill, CloseDotFill, UserFill. Перша позначає відсутність зафарбовування, друга - суцільну, наступні - різні специфічні види зафарбовування, найостанніша - зафарбовування, що задається користувачем. Щоб задати користувальницький зразок зафарбовування, потрібно використовувати процедуру SetFillPattern (Pattern: FillPatternType; Color: Word); FillPatternType визначається як array [1..8] of byte. кожен елемент масиву кодує одну сходинку зразка зафарбовування (як і для ліній), а всього таких рядків 8. У результаті зафарбування виконується за допомогою однакових квадратиків 8 x 8.

Нижче наводяться процедури малювання зафарбованих фігур.

Схожі статті