Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Підручник по ТР.DOC
Скачиваний:
11
Добавлен:
19.11.2019
Размер:
1.79 Mб
Скачать

4. Графічна інформація та її обробка на мові Pascal.

Мабуть найбільш цікавим розділом програмування для молоді є саме створення програм, які насичені графікою, анімацією і іншими мультимедійними ефектами. Авторам цієї книги таке програмування також приносить задоволення від результатів праці, але, оскільки метою даної книги є не демонстрація графічних можливостей комп’ютера і мови Паскаль, то ми обмежимось розглядом лише зовсім невеликої частини графічних процедур і функцій, що входять до складу модуля Graph. Ще раз зауважимо, що розгляд буде поверховим і оглядовим, розрахованим на початківця, тому всім зацікавленим особам ми рекомендуємо звернутись до відповідної літератури по технічному опису мови програмування Паскаль. Ті ж читачі, що вже вміють працювати з графікою на Паскалі, можуть просто пропустити даний розділ і переходити до наступного.

Бібліотека підпрограм, що реалізує графічні можливості мови знаходиться у модулі Graph, тому перед використанням графічних процедур бажано перевірити, чи даний модуль є у вашому каталозі з Паскалем. Для доступу до даного модуля там повинен бути розміщений хоча б один з графічних драйверів, наприклад cga.bgi. Якщо ж жодного графічного драйвера у вашому варіанті установки системи програмування немає, то необхідно знайти відповідний драйвер у своїх товаришів, або постачальників програмного забезпечення.

Весь подальший виклад буде в основному орієнтовано на використання графічного адаптера CGA в режимі 320 на 200 точок або EGA (640 х 450). Зроблено це знову ж таки лише з однією метою – зекономити час для того, щоб навчитись програмувати, а не витрачати його на художнє оформлення нескладних програм.

§ 4.1 Організація відображення графічної інформації

Для того, щоб мати можливість створювати графічні зображення на екрані перш за все необхідно знати параметри монітора, або, точніше кажучи, графічного адаптера. Будемо орієнтуватись на те, що режим CGA підтримує кожен монітор, і тому розпочнемо з такої програми, яку рекомендуємо вам просто набрати і виконати:

uses graph;

var gd, gm : integer;

begin

gd := 1; gm := 1;

initgraph(gd,gm,'cga.bgi');

readln;

closegraph;

end.

Ми не випадково не написали ніяких коментарів до цієї програми. Що ж робить дана програма. По великому рахунку нічого, але то тільки на перший погляд. Якщо при виконанні даної програми у вас почорнів екран а після натиснення на клавішу <Enter> відновився попередній вигляд екрану, то це значить, що у наша програма виконала досить солідний об’єм роботи. Розберемо по рядках, що ж такого зробила програма:

uses graph; – підключено графічний модуль

var gd, gm : integer; – зарезервовано пам’ять під дві змінні типу integer

begin – програма почала роботу

gd := 1; gm := 1; – зарезервованим змінним присвоєно по одиниці

initgraph(gd,gm,'cga.bgi'); – підключено драйвер cga.bgi

readln; – дочекались натиснення на клавішу <Enter>

closegraph; – закрили графічний режим і відновили текстовий

end. – попрацювали – можна й відпочити – кінець програми

Ми привели цю програму тільки тому, що у ній зібрано той мінімум команд, які обов’язково потрібно використати для роботи у графічному режимі (за винятком readln яке введено для того, щоб можна було побачити, що програма дійсно візуально щось таки робить, ну хоча б робить темним екран монітора).

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

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

uses graph;

var gd, gm : integer;

begin

gd := 9; gm := 1;

initgraph(gd,gm,'egavga.bgi');

setcolor(4); { встановили колір }

rectangle(0,0,639,349); { намалювали прямокутник }

SetBkColor(0); { колір фону }

SetColor(2); { встановили колір }

Outtextxy(40,20,'Приклад виведення тексту '); { вивели текст }

SetFillStyle(1,10); { стиль заповнення фігур }

Bar(100,100,150,120); { зафарбований стовпчик }

Bar3D(200,100,250,130,10,true); { 3–х мірний паралелепіпед }

Arc(300,110,0,180,20); { дуга – кут проти годинникової стрілки }

Circle(400,110,20); { коло }

Ellipse(500,110,0,360,20,50); { еліпс }

FillEllipse(600,110,20,40); { заповнений еліпс }

SetColor(12); { встановили колір }

line (10,170,630,170); { лінія }

readln;

closegraph;

end.

Для детального вивчення графіки можна було б написати окрему книгу (і не одну!), тому ми на цьому і зупинимось.