Розширений додатковий матеріал для вивчення теми "Комп'ютерна графіка Pascal"
Структура:
Графічний режим Pascal. Загальні положення. Ініціалізація графічного режиму.
Як Вам вже відомо, будь-який монітор ПЕОМ може працювати в одному з двох режимів: текстовому;
графічному.
Перший з них дозволяє виводити на екран будь-який символ ASCII-таблиці у визначене знакомісце екрану, що знаходиться на перетині рядка та стовпчика. Кількість знакомісць залежить від текстового режиму, але найчастіше дорівнює 25 рядкам по 80 колонок в кожному. В цьому режимі можна керувати кольором та яскравістю символів, забезпечуючи за бажанням їх миготіння, та кольором тла.
В графічному режимі будь-яке зображення отримується як сукупність різнокольорових точок - пікселів. Кількість елементів зображення теж задається відповідним режимом, але стандартно дорівнює 640 на 480 відповідно по горизонталі та вертикалі.
Для роботи в графічному режимі в Паскалі використовується модуль Graph, який складається з більш ніж 90 графічних процедур і функцій широкого профілю. Усі стандартні засоби модуля Graph стають доступними після його підключення до програми в розділі Uses:
Uses Graph;
У графічному режимі можна виводити текст, причому є можливість масштабування і вибору типу шрифту, виконання вирівнювання виведеного тексту тощо.
Наявні програми підтримують різні засоби малювання і заповнення фігур, зокрема, крапку, лінії, окружності, еліпси, прямокутники, багатокутники.
Для забезпечення переходу екрану монітора в графічний режим програма повинна починатися викликом процедури InitGraph, що автоматично виявляє апаратні засоби і завантажує відповідний графічний драйвер. Стандартний драйвер EGAVGA.BGI розміщується у каталозі BP\BGI на відповідному диску. Якщо апаратні засоби не виявлені або в процесі ініціалізації відбулася помилка, то на екран виводиться повідомлення про помилку і програма зупиняється.
При запуску програми з середовища Турбо Паскаль екран знаходиться в текстовому режимі роботи, тому програма яка використовує графічні можливості комп’ютера, повинна певним чином ініціювати графічний режим роботи. Для цього використовується процедура InitGraph.
Записується так
InitGraph(driver, mode,path); де driver – змінна типу Integer, яка визначає тип графічного драйвера.
mode – змінна типу Integer, яка задає режим роботи графічного адаптера.
path – вираз типу String, який місить ім’я файлу драйвера і, можливо, шлях його пошуку. Ініціювання графіки на Турбо Паскалі має такий вигляд: driver:=detect;
InitGraph(driver, mode,’’);
Після того, як буде ініційований графічний режим і програма виконає всі потрібні операції потрібно перейти в текстовий режим – команда CloseGraph;
CloseGraph – завершує роботу адаптера в графічному режимі і переходить в текстовий режим.
Readkey – затримка екрана.
Послідовність підключення графічного режиму:
1. Підключити модуль, що містить графічні команди - модуль Graph;
2. Оголосити змінні, необхідні для підключення графічного режиму;
3. Визначити тип графічного адаптера – функція detect;
4. Ініціалізувати графічний режим – використання процедури InitGraph; 5. Перевірити правильність підключення графічного режиму: if GraphResult<>0 then write(‘Error’) else begin … end;
6. Закрити графічний режим – процедура CloseGraph.
2
Шаблон підключення графічного режиму: uses graph,crt;
var driver,mode,xc,yc,x,y:integer; begin
driver:=detect;
initgraph(driver, mode, '..\bgi'); if graphresult<>0 then writeln('ERROR')
else begin
{---start of graph commands---}
{---end of graph commands---} readkey; closegraph;
end;
end.
Екран у графічному режимі може адресуватися за допомогою системи координат, причому значення Х (номера стовпчика) збільшується зліва праворуч, а значення Y (номера рядка) збільшується зверху до низу. За замовчанням координати екрана мають такий вигляд:
(0,0) - лівий верхній кут;
(639,0) - правий верхній кут;
(319,239) - центр;
(0,479) - лівий нижній кут екрана;
(639,479) - правий нижній кут.
Приклад програми, яка розділяє екран на рівні частини прямим вертикальною та горизонтальною лініями, що проходять через умовний центр. Uses graph, crt; {Підключення бібліотек}
Var driver, mode:integer;
Begin
driver:=detect; {Ініціалізація графічного режиму} InitGraph(driver, mode,’’);
{Малювання } line(0,240,640,240); line(320,0,320,480);
Readkey; {Затримка зображення на екрані}
Closegraph; {Закриття графічного режиму} End.
3
Для того, щоб легко і швидко навчитись малювати в графічному режимі Pascal, можна використовувати аркуш в клітинку, попередньо провівши осі координат, а кожну клітинку брати за 10px (пікселів).