русс | укр

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

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

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

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


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

Координаты устройства и мировые координаты


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


В растровой компьютерной графике экран представляет собой прямоугольный массив адресуемых точек и любое изображение на нем образуется как композиция светящихся или погашенных пикселов (так называется минимальный элемент изображения). Эти точки адресуются двумя целыми — горизонтальным номером точки nx и вертикальным номером ny:

0 <= nx <= nx_max,

0 <= ny <= ny_max,

где nx_max и ny_max — количество адресуемых точек по горизонтали и по вертикали минус единица. В табл. 19.4 в колонке «Разрешение экрана» показано количество точек для различных режимов и типов адаптеров дисплеев.

В модуле Graph предусмотрена возможность программного опроса максимальных адресуемых координат экрана. Она реализована парой функций

GetMaxX : Integer;

GetMaxY : Integer.

Возвращаемые ими значения соответствуют параметрам nx_max и ny_max в наших обозначениях и будут различаться для различных режимов и адаптеров. При адресации точек координатами, большими чем эти значения, операция игнорируется.

Точка с адресом (0,0) обычно расположена в левом верхнем углу экрана дисплея. Координаты (nx, ny) называют также координатами устройства. Они могут принимать только целые значения.

В компьютерной графике используются еще две системы координат. Первая — физическая система координат (px, py), где px — физическое расстояние на экране по горизонтали, а py — по вертикали. Ее оси измеряются в дюймах или миллиметрах.

Вторая система координат — так называемая мировая. Она представляет собой декартову систему (X, Y), определенную программистом, и является независимой от типа устройства отображения:

xmin < x < xmax

ymin < у < ymax

Параметры, которыми задаются диапазоны изменения x и y (xmin, xmax, ymin, ymax), определяют прямоугольную область в {421} абстрактном математическом двумерном пространстве. В примере на рис. 19.9 приведены необходимые объявления и процедура установки мировых координат.



TYPE { глобальный тип } World_Rec = RECORD { запись: } xmin.ymin, { предельные значения } xmax.ymax, { мировых координат } width,height: Real { диапазон "мира" } END; VAR my_world :World_Rec; { глобальная переменная-"мир" } nx_max,ny_max: Integer; { макс. разрешение экрана } PROCEDURE SetWindowWorld(minX,minY,maxX,maxY : Real); BEGIN with my_world do begin { работа с записью my_world } xmin = minX; { Назначение мировых координат в } ymin = minY; { соответствии с заданными } xmax = maxX; { фактическими параметрами... } ymax = maxY; width := maxX - minX; { Определение диапазона их } height:= maxY – minY { возможного изменения } end {with} END;

Рис. 19.9

Для перевода текущих координат точки из мировой системы в систему устройства можно воспользоваться процедурой с рис. 19.10.

PROCEDURE WorldToDevice(x, y : Real; VAR nx, ny : Integer); BEGIN with my_world do {работа с записью my_world } begin nx := Round((x-xmin)/width)*nx_max; ny := Round((y-ymin)/height)*ny_max end END;

Рис. 19.10 {422}

Заметим, что переменные nx_max, ny_max должны быть инициализированы сразу после включения соответствующего графического режима. Это можно сделать, используя функции GetMaxX и GetMaxY. Так как в модуле Graph все процедуры и функции работают с координатами устройства, то в дальнейшем все действия будут осуществляться только в определенной режимом системе координат.



<== предыдущая лекция | следующая лекция ==>
Управление режимом вывода отрезков на экран | Управление «текущим указателем»


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


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

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

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


 


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

 
 

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

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