Графічні можливості мови Паскаль
Мова програмування Паскаль 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-глибина) та