Відображення на екрані дисплея графічної інформації

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

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык украинский
Дата добавления 13.11.2010
Размер файла 31,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Житомирський Військовий Інститут

Національного Авіаційного Уніврситету

Реферат на тему:

Відображення на екрані дисплея графічної інформації

Житомир 2010

План

Графічний режим роботи дисплейних адаптерів. Типи драйверів

Модуль GRAPH. Ініціалізація і завершення графічного режиму

Структура графічної Паскаль-програми

Помилки ініціалізації графічного режиму та їх обробка

Процедури та функції роботи з відеорежимами

Побудови графічних об'єктів

Графічні режими роботи дисплейних адаптерів. Типи драйверів

Починаючи з версії 4.0 у склад ТР входить бібліотека графічних підпрограм (модуль GRAPH).,яке забезпечує керування режимами різних адаптерів дисплеїв; вона містить 80 графічних процедур та функцій а також стандартних констант і описів типів даних.Стандартний стан ПК після його вимикання, а також до запуску Паскаль-програм відповідає роботі режиму у текстовому режимі. Для виконання графічних засобів потрібно ініціалізувати графічний режим режим роботи дисплейного адаптера. Настройка графічних процедур на роботу з графічним адаптером досягається шляхом підключення відповідного графічного драйвера. Таким чином графічний драйвер керує графічним адаптером в графічному режимі роботи.

Основні характеристики моніторів та адаптерів:

розмір екрану по діагоналі (9, 14, 15, 17, 20, 21 дюйм);

розмір мінімального елементу зображення (0,25..,28 мм). Для кольорових - моніторна група - 3 зерна;

роздільна здібність - це кількість точок (пікселів) по горизонталі та вертикалі;

об'єм відеопам'яті (16 Кб - 1 Мб).

Графічні можливості адаптерів визначаються загальною кількістю пікселів (роздільна здібність) та кількістю кольорів (відтінків) кожного пікселя.

Крім того деякі графічні адаптери мають можливість працювати з декількома графічними сторінками - це область ОЗП, яка використовується для створення "карти" екрана (тобто інформація про світимість кожного пікселя).

Графічні драйвери

Представляють собою файли з розширенням .BGI, які забезпечують взаємодію програм з графічними пристроями і містяться в окремому каталозі (BGI). {*BGI - Borland Graphics Interface - графічний шнтерфейс фірми Borland}. В процесі ініціалізації визначеного графічного режиму вмикається відповідний драйвер.

В таблиці 1 приведені приклади графічних адаптерів та драйверів:

Таблиця 1

Драйвер

Апаратне забезпечення

CGA.BGI

Адаптери CGA, MCGA

EGAVGA.BGI

Адаптери EGA, VGA

HERC.BGI

Адаптер Hercules

ATT.BGI

AT&T 6300 (400 рядків)

PC3270.BGI

IBM 3270 PC

IBM8514.BGI

IBM 8514

В комплект поставки ТР входить обмежена кількість драйверів, який може підтримувати один, або декілька відеорежимів. Тип драйвера і режим можна задавати у вигляді числа або у вигляді символьної константи. Ці константи визначені у модулі GRAPH:

Таблиця 2

Detect = 0

{автовизначення}

CGA = 1;

EGAMONO = 5;

MCGA = 2;

IBM8514 = 6;

EGA = 3;

HercMONO = 7;

EGA64 = 4;

ATT 400 = 8;

VGA = 9;

PC3270 = 10.

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

2. Модуль GRAPH. Ініціалізація і завершення графічного режиму

Як відмічено на початку лекції, для створення графічних зображень в мові ТР призначений спеціальний стандартний бібліотечний модульGRAPH, який підключається стандартним способом: USES GRAPH;

Модуль GRAPH представляє собою окремий файл GRAPH.TPU і містить набір процедур і функцій.

Процедура ініціалізації графічного режиму:

InitGraph (var Driver, Mode : integer; path : string);

Змінні Driver i Mode задають драйвер і режим роботи адаптера, path - визначає ім'я файлу драйвера і можливий шлях до файлу.

Перші дві змінні задаються константами таблиці 2, іменем або числовим значенням.

Приклад 1:

Нехай драйвер EGAVGA.BGI знаходиться в каталозі TP\BGI диска С і встановлює режим VGAHI (640*480, 16 кольорів). Фрагмент використання процедури в програмі:

Begin

Driver := VGA;

Mode := VGAHI;

InitGraph (Driver, Mode, `C:\TP\BGI');

end.

Якщо тип адаптера не відомий, або якщо програма розрахована на роботу з будь-яким адаптером, використовується звертання до процедури з параметром автоматичного визначення типу драйверу.

Приклад 1а:

Driver := Detect;

InitGraph (Driver, Mode, `C:\TP\BGI');

Такий параметр рекомендують використовувати при роботі на різних комп'ютерах з різними відеоадаптерами.

Особливості автовизначення типу драйвера:

а) для адаптера вибирається максимальний режим;

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

в) ТР автоматично не розпізнає адаптери IBM8514 i ATT400; їх необхідно вказувати в процедурі.

Процедура завершення графічного режиму: CLOSEGRAPH;

Процедура без параметрів. В процесі її виконання звільняється пам'ять (від драйверів, файлів, шрифтів, проміжних даних), відновлюється текстовий режим роботи екрану.

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

3. Структура графічної Паскаль-програми

Приклад 2:

Program GraphicDemo;

Uses Graph;

Var Driver, Mode : integer;

Begin

Driver := Detect;

InitGraph (Driver, Mode, `C:\TP\BGI');

{графічні дії}

…..

CloseGraph ;

End.

4. Помилки ініціалізації графічного режиму та їх обробка

При виконанні програми можуть виникати помилки. Тому в модулі GRAPH реалізований механізм визначення помилок та видачі повідомлень про них на екран за допомогою функції GraphResult i GraphErrorMsg.

Функція GraphResult : integer; повертає 0, якщо остання графічна операція виконалась без помилок, або число від -14..-1, при наявності помилок.

Функція GraphErrorMsg (Code : integer) : string; повертає значення типу STRING в якому відповідно коду помилки надається текстову повідомлення. CODE - код помилки, який повертається функцією GraphResult.

Приклад 3:

Var

Driver, Mode, Error : string;

Begin

Driver := Detect;

InitGraph (Driver, Mode, `');

Error := GraphResult;

If Error <> 0 then

WriteLn (GraphErrorMsg (Error));

……………. {повідомлення помилки}

CloseGraph;

End.

5. Група процедур та функцій управління режимами роботи графічного адаптера

процедура DetectGraph виконується для тестування графічного адаптера:

DetectGraph (var Driver, Mode : integer);

Ця процедура може бути викликана до ініціалізації графічного режиму. Параметри:

Driver - повертає тип драйвера;

Mode - повертає максимальне значення відповідного режиму.

Ці значення і рекомендується підставляти як фактичні параметри процедури InitGraph.

група процедур та функцій управління режимами роботи графічного адаптера:

а) функція GetGraphMode : integer повертає код установленого режиму роботи графічного адаптера.

б) функція GetMaxMod : integer; повертає максимальний номер коду режиму графічного адаптеру;

в) функція GetModName (ModNum : integer) : string; повертає значення типу STRING, яке містить ім'я режиму роботи за його номером;

г) функція GetDriveName : string; повертає ім'я поточного графічного драйвера;

д) процедура GetModeRange (Driver : integer; var LoMode, HyMode : integer); повертає діапазон можливих режимів роботи заданого графічного драйвера:

Driver - тип адаптера;

LoMode - мінімальне значення коду режиму адаптера;

HiMode - мінімальне значення коду режиму адаптера.

!Особливість!:

якщо значення Drive задано невірно, то змінні отримують значення -1;

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

процедур установки текстового та графічного режимів:

а) RestorCRTMode; повертає до текстового режиму.

!Особливість!: навідміну від CloseGraph графічний драйвер залишається у пам'яті, а також залишаються установленими графічного режиму.

б) процедура SetGraphMode (Mode : integer); установлює графічний режим за вказаним кодом - Mode.

!Осбливість!: для повернення до попереднього графічного режиму на місце параметра мінімальне значення коду режиму адаптера Mode можна вставити функцію GetGraphMode.

Розглянемо приклади використання процедур роботи з відеорежимами.

Приклад 4:

Перехід з графічного режиму до текстового і знову до графічного.

Uses Graph;

Var Driver, Mode, Error : integer;

Begin

Driver := Detect;

InitGraph (Driver, Mode, `');

Error GraphResult;

If Error <> 0 then

WriteLn (GraphErrarMsg (Error))

Else

Begin

WriteLn (`Це графічний режим');

ReadLn;

ResultCRTMode;

WriteLn (`Це текстовий режим');

`ReadLn;

SetGraphMode (GetGraphMode);

WriteLn (`Знову графічний режим');

ReadLn;

CloseGraph;

End;

End.

Приклад 5:

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

Uses GRAPH;

Var

a, b : integer;

begin

a := Detect;

InitGraph (a, b, `');

WriteLn (GetDriveName);

For a := 0 to GetMaxMode do

WriteLn (GetModeName (a) : 10);

ReadLn;

CloseGraph;

End;

Приклад 6:

Вивести на екран назви всіх адаптерів і діапазон можливих номерів режимів їх роботи.

Uses Graph;

Var

D, L, H : integer;

Const

N : array [1..11] of string [8] =

(`CGA', `MCGA', `EGA';

`EGA64', `EGAMONO', `IBM8514';

`HercMONO', ` ATT400', `VGA';

`PC3270', `Помилка');

begin

writeLn (` адаптер Мин. Макс.');

for D :=1 to 11 do

begin

GetModeRange (D, L, H);

WriteLn (N [D], L : 7, H : 10);

End;

End.

Таким чином:

а) керування графічним режимом забезпечується модуль GRAPH, який підключається стандартним способом: USES GRAPH;

б) для ініціалізації графічного режиму використовують процедура InitGraph;

в) завершує графічний режим процедура CloseGraph;

г) структура графічної Паскаль-програми практично не відрізняється від стандартної структури;

д) модуль GRAPH містить широкий набір процедур та функцій роботи з відеорежимами.

6. Побудови графічних об'єктів

Побудова геометричних фігур

Для побудови зображення у графічному режимі використовують систему координат, яка відрізняється від текстового режиму (екран представляється у вигляді прямокутного масиву символів і координати Х, У починаються з 1 …max значення).

Відлік координат починається з верхнього лівого кута екрана з координатами (0, 0). При цьому екран представляється у вигляді прямокутного масиву адресуємих точок (пікселів). Для різних типів адаптерів та режимів кількість точок по вертикалі та горизонталі суттєво відрізняється.

Для визначення максимальних значень координат екрану, в модулі GRAPH використовують функції:

GetMax X : integer;

GetMax Y : integer.

Особливості: якщо при адресації точок вказуються значення координат, які перевищують максимальні, то операція ігнорується.

Побудова графічного зображення починається з позначення початкової позиції. У текстовому режимі цю позицію позначає курсор, який розміщується за останнім символом і вказує на місце наступного символу. В графічних режимах відображаємого на екрані курсору не має, але є скритий поточний показчик СР (current pointer), який виконує аналогічні функції курсору текстового режиму.

В графічному режимі для переміщення СР використовують процедури:

Move To (x, y : integer) - переміщує поточний показчик СР в точку з координатами x, y;

Move Rel (dx, dy : integer) - переміщує СР на dx точок по горизонталі і на dy точок по вертикалі відносно останнього положення поточного показчика. Якщо dx, dy більше 0, то координати СР збільшуються; якщо менше 0 - зменшуються.

Для визначення поточного розташування графічного курсору СР використовують функції:

GET X : integer;

GET Y : integer;

які повертають значення поточних координат показчика.

Приклад 1: позиціонування графічного курсору та визначення його координат:

Uses GRAPH;

Var Driver, Mode : integer;

Begin

Driver := Detect;

InitGraph (Drive, Mode, `');

If GraphResult <> 0 then

Begin

WriteLn (`ошибка');

Halt (1);

End;

Move To (GetMax X div 2, GetMax Y div);

OutTextXY (GET X, GET Y, `курсор по центру');

MoveRel (-GET X div 2, -GET Y div 2);

OutTextXY (`курсор переміщений');

ReadLn;

CloseGraph;

End.

Установка кольору та стилю

1) процедура Set Color (Color : word); встановлює поточний колір для ліній та символів. Параметр Color позначає номер кольору від 0 до 15:

Таблиця 1

Black = 0

Light Gray = 7

Blue = 1

Darc Gray = 8

Green 2

Light Blue = 9

Cyan =3

Light Green = 10

Red = 4

Light Cyan = 11

Magente = 5

Light Red = 12

Brown = 6

Light Magente = 13

Yellow = 14

White = 15

Blink = 128

2)процедура SetBKColor (Color : word); встановлює колір фону, який визначається параметром Color.

процедура SetFillStyle (Fill, Color : word); встановлює стиль (тип і колір) заповнення фрагментів зображення.

Геометричні побудови.

Відображення точки:

В модулі Graph для відображення точки використовують процедуру:

PutPixel (x, y : integer);

x, y - координата точки;

Color - її колір (значення беруть зі встановленої палітри).

Відображення ліній:

а) Процедура:

Line (x1, y1, x2, y2 : integer);

x1, y1, x2, y2 - координати початкової і кінцевої точок лінії. Лінія креслиться поточним стилем і поточним кольором.

б) процедура: LineTo (x, y : integer); будує лінію від точки поточного розміщення показчика до точки зкоординатами (x,y).

в) процедура: LineRel (dx, dy : integer); проводить відрізок від точки поточного розміщення на величину заданого приросту.

г) процедура:SetLineStyle (Type, Pattern, Thich : word); встановлює стиль відображення ліній, де параметри - це відповідно тип, шаблон і товщина лінії. Тип лінії задається константою з таблиці 3:

Таблиця 3

Const

Значення

Характеристика

SolidLn

0

Безперервна

PottedLn

1

Пунктирна

CenterLn

2

Штрих-пунктирна

DashedLn

3

Штрихова

UserBitLn

4

Задана

Параметр Pattern тільки для ліній типу UserBitLn і може приймати значення від 1..65536, тобто 2 байта кожен біт (із 16 біт слова) може приймати значення 0 або 1 (піксель не світиться або світиться).

Таким чином параметр Pattern задає відрізок ліній, довжиною 16 пікселів.

Цей шаблон періодично повторюється по всій довжині ліній.

Параметр Thich приймає 2 значення:

Norm Width = 1

Thick WidTh = 3

Побудова прямокутників та паралелепіпедів

Процедура Rectangle (x1, y1, x2, y2 : integer); створює прямокутник з координатами x1, y1 - лівого верхнього кута і x2, y2 - правого нижнього кута. Область середини прямокутника незафарбована і співпадає з кольором фону екрану. Для ліній прямокутника використовується поточний стиль ліній і колір (заданий).

Процедура Bar (x1, y1, x2, y2 : integer); утворює прямокутник, внутрішня область якого заповнюється поточним стилем (тип і колір). Параметри процедури - відповідні координати лівого верхнього та правого нижнього кутів. Використовують для побудови гістограм, діаграм і т.п.

Процедура Bar3D (x1, y1, x2, y2 : integer; D3 : word; Top : boolean); відображає паралелепіпед (трьохмірне зображення) і зафарбовує його передню грань поточним стилем. X1..Y2 - координати лівого верхнього та правого нижнього кута передньої грані; D3 - трьохмірне зображення "глибина" у пікселях; Top - задає режим відображення верхньої грані. В модулі GRAPH для режиму Top визначені 2 константи:

Top On = TRUE - верхня грань відображається;

Top Off = FALSE - верхня грань не відображається.

Будова многокутників.

Многокутники можна зображати декількома способами: наприклад, за допомогою процедур Line, LineTo.

Паскаль також містить процедури, які дозволяють будь-які многокутники.

процедура DrowPoly (n : word; var points); створює многокутник за допомогою ліній поточного кольору, стиля і товщини. Параметр n - кількість точок ламаної; points - змінна типу PointType, яка містить координати x, y точок ламаної.

В модуліGRAPH передбачений такий тип:

Type

PoinType = RECORD

x, y : integer;

end;

процедура FillPoly (n : word; var points); схожа з попередньою, але навідміну від неї - малює замкнутий многокутник і зафарбовує його. Стиль і колір лінії і контура задається процедурами SetLineStyle i SetColor, тип і колір заповнення - процедурою SetFillStyle.

Процедура FloodFill (x, y : integer; Border : word); служить для заповнення заданим стилем (SetFillStyle) області в середині або зовні замкненого контуру. Параметри: x, y - координати точки в середині або зовні контура; Border - задає колір контуру. Якщо контур незамкнений то буде заповнення всього екрану заданим стилем.

Побудова кола, дуги та еліпсу.

процедура Circle (x, y : integer; r : word); зображає коло поточного кольору, товщини і вид лінії. Параметри x, y - координати центру кола, r - радіус у пікселях.

Процедура Arc (x, y : integer; StAngle, EndAngle, r : word); креслить дугу кола. Задається координатами центру кола, початковим та кінцевим кутами ( у градусах), які відраховуються від горизонтальної вісі проти часової стрілки; радіус кола у пікселях.

процедура Ellipse (x, y : integer; StAngle, EndAngle, xr, yr, r : word); призначена для побудови еліптичних дуг. Параметри: координати центру, початковий та кінцевий кути, горизонтальний та вертикальний радіуси еліпсу у пікселях.

Процедура Sector (x, y : integer; StAngle, EndAngle, rx, ry, r : word); відображає сектор еліпсу, який заповнюється поточним стилем. Параметри аналогічні.

Процедура FillEllipse (x, y : integer; xr, yr : word); креслить контур еліпсу поточним кольором і заповнює поточним стилем. Параметри: координати центру, горизонтальний та вертикальний радіуси еліпсу.

Процедура PieSlice (x, y : integer; StAngle, EndAngle, r : word); зображає сектор кола і заповнює поточним стилем. Зручно використовувати для побудови кругових діаграм.

Програмування графіки в комбінації з текстом

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

всі дії виконуються тільки з рядковими константами і змінними, тому вся чисельна інформація повинна перетворюватись в символьну;

можливість використання різноманітних шрифтів.

Розглянемо основні засоби модуля GRAPH для виведення текстової інформації:

а) процедура OutText (text : string); виводить на екран рядок тексту, починаючи з поточного розміщення графічного курсору СР;

б) процедура OutTextXY ( x, y, text ); виводить рядок тексту починаючи з указаних координат;

в) процедура SetTextStyle (Font, Direct, size : word); встановлює стиль тексту. Параметри: код шрифту, код орієнтації символів, розмір символів.

Відображення цифрової інформації.

В модулі GRAPH засоби відсутні. Але можна використовувати наступний спосіб: спочатку перетворити число або цифру в рядок за допомогою процедури Str, а далі операцією конкатенації (+) поєднати її з рядком, який відображається процедурою OutTextXY.

Приклад:

Max := 3.14;

Str (Max : 4 : 2, Smax);

OutTextXY (400, 40, `Max=' + Smax);

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


Подобные документы

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

    доклад [17,2 K], добавлен 05.10.2008

  • Інтегративні характеристики веб-дизайну. Композиційно-пластичні засоби побудови графічної мови. Існуючі системи класифікації стилів у веб-дизайні. Аналіз структури, образних рішень та графічної мови обраних сайтів, поширені прийоми та засоби у дизайні.

    магистерская работа [95,3 K], добавлен 20.01.2013

  • Проектування і реалізація навчального програмного продукту "Побудова геометричних фігур". Використання C++ Builder 6 у якості програмного середовища для реалізації даної навчальної програми. Інструкція з використання розробленого програмного забезпечення.

    курсовая работа [2,2 M], добавлен 05.05.2014

  • Клавіатури та маніпулятори, принципи їх дії, основні характеристики та застосування. Графічні планшети та сенсорні екрани. Автоматичні засоби вводу графічної інформації. Програма Fine Reader 4. Сканування та автоматичне розпізнавання документів.

    курсовая работа [3,8 M], добавлен 30.03.2017

  • Зчитування числової інформації з файлу DATA.txt, аналізування, обробка та виконання графічного відображення. Редагування файлу тексту програми. Метод відображення кнопки з надписом на екрані. Створення нових класів на основі інших, вже створених.

    курсовая работа [196,2 K], добавлен 14.03.2013

  • Алгоритм побудови лінії та використання графічної бібліотеки DirectX. Способи побудови довільної кількості довільного розміру точок на поверхні форми. Можливості комп'ютера виконувати мультимедійні програми під управлінням операційної системи Windows.

    контрольная работа [416,9 K], добавлен 22.10.2009

  • Графічна підсистема Delphi 5, її можливості, інструменти та принципи побудови прикладних програм з використанням графіки; дочірні класи. Методи опрацювання графічних зображень різних форматів і типів: растрових файлів, метафайлів Windows, піктограм.

    лабораторная работа [47,9 K], добавлен 19.03.2011

  • Поняття та основні властивості алгоритму. Реалізація програми здійснюється за допомогою написаного раніше тексту (вихідного коду). Особливості середовища програмування Турбо Паскаль. Питання синтаксичної правильності та самодокументованості тексту.

    практическая работа [1023,8 K], добавлен 03.07.2014

  • Найбільш розповсюджені середовища створення графічних зображень та 3D моделей. Основні інструменти векторних редакторів. Функції програм Adobe Photoshop и Корелдроу. Графічні моделі, характеристики й типи графічних файлів. Створення власних моделей.

    дипломная работа [6,7 M], добавлен 25.06.2011

  • Побудова інформаційно-математичної моделі задачі. Визначення структури даних. Розробка інтерфейсу програми з користувачем. Реалізація проекту у візуальному середовищі. Аналіз та тестування програми. Розгляд результатів та інструкція з експлуатації.

    курсовая работа [4,2 M], добавлен 07.05.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.