русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Графические окна


Дата добавления: 2015-06-12; просмотров: 1418; Нарушение авторских прав


В системе BGI-графики вводится термин «viewport». Точного аналога этого слова в русском языке нет, если не считать заимствования «вьюпорт». Специальный словарь дает следующее разъяснение: «вьюпорт — это область просмотра, окно экрана, в компьютерной графике — часть пространства отображения, в которой изображается и просматривается часть моделируемого объекта». Мы будем использовать термин «графическое окно». При образовании графического окна получается как бы «экран в экране» заданного размера. В модуле Graph для описания графического окна объявлен следующий тип и две константы:

TYPE

ViewPortType = RECORD

X1, Y1, X2,Y2 : Integer; { границы окна }

Clip : Boolean; { режим отсечения }

END;

CONST

ClipOn = True; { отсечение по границе окна включено }

ClipOff = False; { отсечение по границе окна выключено }

Здесь первые элементы записи — это координаты прямоугольной области (графического окна), как их принято задавать, a Clip — это параметр, указывающий графической системе, что делать с изобра-{456}жением, попавшим за пределы этой области. Clip может принимать два значения. Значение ClipOn указывает на то, что все элементы изображения (например, линия line(X3, Y3, X4, Y4) на рис. 19.31) обрезаются по границам графического окна, a ClipOff указывает на то, что все рисуется без изменений, как бы «не глядя» на границы окна.

 
──────────────────── ─ ─ ─ ─

(0, 0) (GETMaxX, 0)

 

 

(X1, Y1)

 

(X3, Y3)
(X2, Y2)
(X4, Y4)

 

 

(0, GetMaxY) (GetMaxX, GetMaxY)

Рис. 19.31

Объявление графического окна производится процедурой

SetViewPort( Х1, Y1, Х2, Y2 : Integer; ClipMode : Boolean )



где входные параметры соответствуют полям записи типа ViewPortType. После выполнения этой процедуры все текущие установки станут относиться к окну. Текущий указатель (графический курсор) установится в его левый верхний угол, и туда же переносится начало системы координат устройства. Другими словами, мы получим локальную систему координат устройства. Если параметры процедуры заданы неправильно, то функция GraphResult возвратит ошибку grError (‑11).

Назначение графического окна можно использовать для перемещения начала системы координат. Так, если задать окно вызовом

SetViewPort( GetMaxX div 2, GetMaxY div 2, GetMaxX, GetMaxY, ClipOff );

то получим систему координат с началом в центре экрана. При этом станет «видимой» адресация отрицательных координат. Графическое окно не меняет масштаба системы координат, а лишь выбирает систему отсчета адресуемых пикселов.

Для опроса текущих параметров графического окна служит процедура

GetViewSettings( VAR ViewSettings : ViewPortType ) {457}

Если воспользоваться ею сразу же после инициализации графического режима, то обнаружится, что графическим окном является весь экран. Это говорит о том, что для системы безразлично, какое графическое устройство отображает результат, поскольку графическое окно представляет собой некоторый универсальный интерфейс между графической программной системой и графическим устройством вывода.

Для очистки рабочего пространства графического окна в модуле Graph существует специальная процедура

ClearViewPort

Она работает следующим образом:

1) устанавливает цвет заполнения равным текущему цвету фонда;

2) вызывает процедуру Bar с теми же значениями координат; что и у процедуры SetViewPort, вызванной перед этим;

3) перемещает текущий указатель в точку (0, 0).

Несмотря на то, что понятие графического окна является общим для всех процедур и функций, одна процедура все же работает не по правилам: процедура PutImage в силу особенностей программной реализации работает одинаково как для значения параметра Clip, равного ClipOn, так и для ClipOff. Помните об этом, и обязательно проверяйте в программе условия помещения всего изображения в графическом окне.



<== предыдущая лекция | следующая лекция ==>
Управление видеостраницами | Выбор шрифта и стиля


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.309 сек.