Графічні можливості мови Паскаль

Мова програмування Паскаль 7.0 містить широкий набір типів, констант та функцій для керування графічним режимом роботи екрану, об'єднаних у стандартний бібліотечний модуль GRAPH. За допомогою підпрограм, що входять в даний модуль, можна створювати складні графічні зображення, засновані на використанні різноманітних геометричних фігур. При необхідності замкнуті фігури можуть бути зафарбовані різними кольорами та стилями (зразками) забарвлення. Для виведення текстових написів на графічний екран можуть бути використані чотири штрихові та один матричний шрифт.

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

Встановлення графічного режиму роботи

Перехід у графічний режим у середовищі Паскаль здійснюється з допомогою входить у модуль GRAPH процедури InitGraph, що служить ініціалізації графічного екрана. Ця процедура має такий формат:

InitGraph(varDriver, Mode:integer; Path:string),

де змінні Driverі Mode повинні містити тип графічного драйвера та його режим роботи. Дозволяється вказати Driver=0 для автоматичного визначення даних параметрів за результатами тестування апаратури. Параметр Path визначає маршрут пошуку файлу графічного адаптера.

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

Мова програмування Паскаль 7.0 підтримує 16 основних кольорів, які позначаються відповідно номерами від 0 до 15 (див. таблицю 1).

Таблиця 1 Константи кольору

Константа кольоруКолірКонстанта кольоруКолір
0(Black)Чорний8 (DarkGray)Гемносірий
1 (Blue)Синій9 (LightBlue)Яскраво-синій
2 (Green)ЗеленийlO(LightGreen)Яскраво зелений
3 (Cyan)Блакитний11 (LightCyan)Яскраво-блакитний
4 (Red)червоний12 (LightRed)Рожевий
5 (Magenta)Фіолетовий13 (LightMagenta)Малиновий
6 (Brown)Коричневий14 (Yellow)Жовтий
7 (LightGray)Світло сірий15 (White)Білий

Основними графічними операторами роботи з квітами є процедури модуля GRAPH під іменами SetBkColor (служить встановлення кольору фону) і SetColor (для встановлення кольору малювання).

Формат даних операторів наступний". SetBkColor (Color: word);

SetColor (Color: word),

де змінна Color, що має цілий тип word, служить для вказівки необхідного номера кольору.

Наприклад, оператори SetBkColor(I); SetColor(14) дозволяють встановити режим малювання жовтим за синьому тлі.

Створення графічних об'єктів

До складу модуля GRAPH входить досить велика кількість підпрограм, що служать для виведення на екран різноманітних графічних об'єктів. Основними процедурами цього типу є:

Rectangle(xl, yl, х2, y2: integer) - служить малювання прямокутників, задаваних координатами двох своїх протилежних кутів;

Bar(xl, yl, x2, y2: integer) – служить для малювання заштрихованих прямокутників, використовуючи при цьому поточний стиль та колір штрихування;

SetFillStyle(Pattern,Color: word) - встановлює зразок штрихування та його колір, де змінна Pattern означає номер шаблону штрихування (див. таблицю 2), a Color – номер кольору штрихування (див. таблицю 1);

Circle(x, у: integer; r: word) - малює коло радіуса г з центром у точці (х, у); Line(xl, yl, x2, y2: integer) - малює лінію від точки (xl, yl) до точки (х2, у2);

PieSHce (x, у: integer; StAngle, EndAngle, nword) - малює і заштриховує сектор кола радіусом г з центром в (х, у) від початкового кута StAngle до кінцевого кута EndAngle. При цьому використовується поточний стиль та колір штрихування (див. процедуру SetFillStyle);

PutPixel(x, у: integer; Color: word) - виводить на екран точку кольору Color з координатами (х, у);

OutTextXY(x, y:integer; TextString:string) - виводить техт TextStringв задане координатами (х, у) місце екрану.

Таблиця 2 Шаблони штрихування

НомерСтиль штрихуванняНомерСтиль штрихування
0Немає штрихування6Похила вліво
1Суцільна (заливка)7У клітину за зразком +++
2Горизонтальними лініями8У клітину на зразок ххх
3Похила праворуч9Штрихування в дрібну клітку
4Похили вправо товстими лініями10Рідкісними точками
5Похила вліво товстими лініями11Частими точками

Стандартний режим роботи серед Турбо Паскаля - текстовий. У цьому режимі відображаються лише відомі комп'ютери символи.

У графічному режимі екран дисплея можна як сукупність близько розташованих точок. Точку екрана називають піксель абопікселя (pixel). Світність цих точок може регулюватися програмою. Пікселі утворюють прямокутну таблицю - растр із нумерацією елементів щодо лівого верхнього кута екрану - точки з координатами (0; 0).

Для представлення символів текстової інформації використовується матриця з фіксованою кількістю пікселів. Знайомісце кожного символу - прямокутник розміром, наприклад, 8x8, 8x14, 8x16 і т.д.; - У знайомому місці за допомогою програми міститься растрове зображення символу.

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

Драйвер - це програма, яка керує певним пристроєм ПК. Графічний драйвер керує дисплейним адаптером у графічному режимі. Графічні драйвери зазвичай розташовуються на диску в підкаталозі BGI робочого каталогу як файлів з розширенням .BG1 (BorlandGraphicInterface).

Бібліотека Graph містить близько 80 графічних процедур та функцій, а також десятки констант та описів типів даних [6, 7]. Підключення модуля відбувається за допомогою зарезервованого USES (usesGraph;).

Модуль Graph-файл GRAPH.TPU. Для роботи з графікою цей файл має бути доступним компілятора, т.к. GRAPH.TPU не входить до складу бібліотеки TURBO.TPL. У полі UNITопції DIRECTORIES / OPTIONS головного меню середовища Турбо Паскаля слід зазначити каталог, у якому розміщено файл GRAPH.TPU.

Для використання різних шрифтів при виведенні тексту (крім кирилиці) потрібно скопіювати файли з розширенням .CHR в робочий каталог.При запуску програми з кирилицею скопіюйте файл EGAVGA.BGI в робочий каталог.

Будь-яка програма для роботи з графікою повинна містити блоки виклику процедури ініціалізації графічного режиму InitGraph - правильність виконання цієї процедури перевіряється функцією GraphResult (0-у разі успіху) - і процедури виходу з графічного режиму CloseGraph.

Процедури та функції з бібліотеки Graph

InitGraph (Driver, Mode, F) Ініціює графічний режим роботи адаптера

CloseGraphЗавершує роботу адаптера у графічному режимі

RestoreCrtModeСлужить для короткочасного повернення до текстового режиму

ClearDeviceОчищає екран, зафарбовує його у колір тла.

ClearViewPortОчищає графічне вікно

SetGraphMode(Mode) Встановлює новий режим роботи адаптера; значення Mode- наприкінці

SetViewPort(Xl, Yl, X2, Y2, Т) Встановлює прямокутне вікно на екрані: X1, Y1 – координати лівого

верхнього, Х2, Y2 - координати правого нижнього кутів вікна, Т - вираз типу Boolean, що визначає

"відсічення" елементів зображення, що не вміщуються у вікні (True- "відсікати")

SetPalette (Reg, Col) Формує нове значення Col у регістрі з номером Reg (установка одного кольору

SetAllPalette(Palette) Здійснює зміну кодів кольоровості у всіх регістрах палітри

SetBkColor (Color) Встановлює колір фону (ціло від 0 до 15)

SetColor (Color) Встановлює колір для символів і ліній, що виводяться, Color-вираз типу Word

PutPixel (X, Y, Color) Виводить точку з координатами X, Y кольором Color

Line (XI, Yl, X2, Y2) Малює відрізок лінії по координатах його кінців

LineRel (Xh, Yh) Викреслює лінію від поточного положення покажчика до положення, заданого

приростами йогокоординат Xhі Yh (вирази типу Integer)

Викреслює лінію від поточного положення покажчика до положення, заданого його новими координатами

MoveRel (DX, DY) Встановлює нове положення покажчика в координатах щодо попереднього

MoveTo (X, Y) Встановлює нове положення покажчика

OutText(Т) Виводить текст Т (крім кирилиці), починаючи з поточного положення покажчика

OutTextXY (X, Y, Т) Виводить текст Т, починаючи з позиції X рядка Y

Circle (X, Y, R) Малює коло радіуса R типу Word з центром у точці з координатами (X; Y)

Ваг (XI, Y1, Х2, Y2) Заповнює прямокутну область екрана, задану координатами діагоналі

Bar3D (XI, Yl, X2, Y2, D, Top) Чортить тривимірне зображення паралелепіпеда (D-глибина) та