Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Керування кольором і стилями

Програмування графіки

 

Відеоадаптер персонального комп’ютера може працювати в одному із двох режимів: текстовому або графічному. У текстовому режимі на екрані дисплея відобра­жаються лише символи. У графічному режимі мінімальним елементом зображення на екрані дисплея є піксель, або графічна тачка.

Будь яка програма, що працює у графічному режимі, використовує графічні драйвери – файли, що містять інформацію про властивості відеоадаптерів. У середовищі Borland Pascal 7.0 графічні драйвери зберігаються у файлах, які мають розширення bgi (від Borland Graphics Interface)

Крім графічних драйверів, під час роботи з графікою в середовищі Borland Pascal 7.0 використовується стандартний бібліотечний модуль Graph, Він є біблі­отекою підпрограм, що містить біля 80 графічних процедур і функцій, а також де­сятки стандартних констант і оголошень типів даних. Модуль Graph підключа­ється до програми за допомогою розділу uses:

 

uses Graph;

 

Модуль Graph міститься у файлі …\units\graph.tpu, і щоб забезпечити можли­вість роботи із графікою, цей файл потрібно зробити досяжним для компілятора. Для цього шлях до файлу модуля Graph слід записати в полі Unit Directories вікна, яке відкривається з меню Options → Directories.

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

 

InitGraph (GraphDriver: integer; var GraphMode: integer; PathToDriver: string);

 

Параметри процедури мають наступний зміст:

GraphDriver – тип графічного драй­вера;

GraphMode – графічний режим роботи адаптера;

PathToDriver – шлях до ката­логу, де зберігаються файли *.bgi – якщо останнє не задане пошук значення параметра здійснюється у робочому каталозі програми.

 

 

Вікно графічного режиму та система координат

 

Для виведення графічного зображення використовується координатний метод. Згідно з цим методом кожна точка на екрані задається двома прямокутними координатами. У режимі VGA лівий верхній кут екрана має координати (0,0), пра­вий нижній – (639,479), Функції GetMaxX та GetMaxY повертають максимальні зна­чення координат по горизонталі (X) та по вертикалі (Y) в поточному режимі роботи адаптера. Координати піксела «о горизонталі та вертикалі визначаються функціями GetX та GetY.

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

У загальному випадку формули перетворення декартових коорди­нат (dX, dY) в екранні (Х, У) враховують масштаб зображення, а також його горизонтальний і вертикальний зсув відносно початку координат:

m X = w X div w dX; X = ціла частина від (dX * m X) + ∆X;

m Y = h Y div h dY; Y = ціла частина від (dY * m Y) + ∆Y;

де m X, m Y – масштаб по горизонталі і вертикалі; w X, h Y – ширина і висота області зображення в екранних координатах; w dX, h dY – ширина і висота області зображення в декартових координатах; ∆X, ∆Y – зсув початку координат.

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

 

SetViewPort (x1,y1,x2,y2: integer; Clip: boolean)

 

Параметри х1, у1, х2, у2 – координати лівого верхнього та правого нижнього кутів графічного вікна. Для відсікання зображення за межами графічного вікна параметру Clip надається значення clipon, а для його продовження – значення clipoff.

Очищення графічного вікна здійснює процедура ClearViewPort, а очищення всьо­го екрана та заповнення його кольором фону – процедура ClearDevice.

 

 

Керування кольором і стилями

 

Для зображення графічних об'єктів використовується кольорова палітра з ко­дами кольорів 0, 1, …, maxcolors. Взагалі драйвер VGA дозволяє відображати до 218 кольорових відтінків, але одночасно – не більше 16. Тому значення константи maxcolors дорівнює 15 і за замовчуванням використовуються 16 кольорів:

 

Const

Black = 0; {чорний}

Blue = 1; {темно-синій}

Green = 2; {темно-зелений}

Cyan = 3; {темно-блакитний}

Red = 4; {бордовий}

Magenta = 5; {темно-фіолетовий}

Brown = 6; {рудий}

Lightgray = 7; {сірий}

Darkgray = 8; {темно-сірий}

LightBlue = 9; {синій}

Lightgreen = 10; {зелений}

Lightcyan = 11; {блакитний}

Lightred = 12; {червоний}

Lightmagenta = 13; {фіолетовий}

Yellow = 14; {жовтий}

White = 15; {білий}

Використання інших відтінків вимагає доволі складної техніки керування кольоровими палітрами. Синтаксис процедур і функцій, що встановлюють кольори ліній і фону, наведено в табл. 5. Установка кольору впливає на всі по­дальші виклики процедур зображення геометричних об'єктів. За замовчуванням вибирається чорний фон і білий колір ліній.

Для зафарбування геометричної фігури використовуються процедури заповнення замкнутого контуру заданим кольором у певному стилі (див. табл. 5). Наведемо приклади оголошення констант, що визначають стиль заповнення, а також стиль і товщину ліній:

 

Const

{стиль заповнення}

EmptyFill = 0; SolidFill = 1; LineFill = 2; LtSlashFill = 3; SlashFill = 4; BkSlashFill = 5; LtBkSlashFill = 6;

HatchFill = 7; XHatchFill = 8; InterleaveFill = 9; WideDotFill = 10; CloseDotFill = 11; UserFill = 12;

 

{стиль ліній}

SolidLn = 0; DottedLn = 1; CenterLn = 2;

DashedLn = 3; UserBitLn = 4;

 

{товщина ліній}

NormWidth = 1; ThickWidth = 3;

 



<== предыдущая лекция | следующая лекция ==>
итогового контроля качества усвоения дисциплины | Тематика заданий 1-2 рубежных срезов
Поделиться с друзьями:


Дата добавления: 2017-02-11; Мы поможем в написании ваших работ!; просмотров: 283 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Либо вы управляете вашим днем, либо день управляет вами. © Джим Рон
==> читать все изречения...

2367 - | 2101 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.015 с.