Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория / Теория / ОСиСП ответы на некоторые вопросы.doc
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
1.38 Mб
Скачать

Вопрос 15:

Системы координат. Трансформации. Режимы масштабирования.

Системы координат. Трансформации.

Режимы масштабирования.

Систему координат, единицами измерения которой являются точки устройства вывода - это физическая система координат. Для дисплея физическая система координат характеризуется двумя осями Х и У.

Х – горизонтально направлена вправо. У – вертикально вниз. Координаты – целые числа.

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

При выводе, Windows осуществляет перерасчет. В логической системе координат направления осей Х и У можно задать, и единицами измерения могут быть не только пиксели устройства, но и десятые, сотые доли миллиметра и дюйма.

При пересчете Windows осуществляет пересчет логической точки (LP) из логического пространства координат, в физическую точку из физической системы координат (DP).

Это делается за 3 шага:

  1. Параллельный перенос изображения на логической плоскости путем вычитания из координат каждой точки изображения заданных константных значений.

  2. Масштабирование полученного изображения путем масштабирования заданной точки (умножением на заданный коэффициент). Изображение переносится на физическую плоскость.

  3. Параллельный перенос изображения на физической плоскости за счет добавления заданных константных значений.

DX=(LX-XWO)*XVE/XWE+XVO

DY=(LY-YWO)*YVE/YWE+YVO

LX – координата Х в логической системе

XWO – смещение по оси Х в логической системе

XVO – смещение по оси Х в физической системе координат

XVE/XWE – масштабный интерфейс по оси Х

В ОС существуют функции, которые выполняют заданные преобразования для массива точек: LPtoDP() и DPtoLP().

С целью геометрической интерпретации констант в этих формулах были введены понятия условного окна проекции и условного логического окна.

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

GetWindowOrg SetWindowOrg

GetViewPortOrg SetViewPortOrg

GetWindowExt SetWindowExt

GetViewPortExt SetViewPortExt

Параметры YWE, XWE, YVE, XVE лишены физического смысла. Физический смысл имеет только их отношение. Значение масштабных коэффициентов регламентируются еще одним параметром в контексте устройства: режим масштабирования (mapping mode). GetMapMode(). SetMapMode().

Режим масштабирования

Логических единиц

Физических единиц

Направление осей

Х

У

MM_TEXT(default)

1

1 pixel

MM_LOMETRIC

10

1 mm

MM_HIMETRIC

100

1 mm

MM_LOENGLISH

100

1 inch

MM_HIENGLISH

1000

1 inch

MM_TWIPS

1440

1 inch

MM_ISOTROPIC

Задается

Задается

MM_ANISOTROPIC

Задается

Задается

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

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

Смещение в пределах логических и физических координат можно задать. Отношение высоты pixel к его ширине называется коэффициентом пропорциональности (aspect ratio).