Поделиться через


Преобразование координатных пространств

Координатное пространство — это плоское пространство, основанное на декартовой системе координат. Эта система позволяет указать расположение каждой точки на плоскости. Для этого требуется две оси, которые являются перпендикулярными и равными по длине. На следующем рисунке показано координатное пространство.

Иллюстрация координатного пространства, показывающая начало, обе оси, а также максимальное и минимальное значения каждой оси

Система поддерживает четыре координатных пространства, как описано в следующей таблице.

Координатное пространство Описание
мир При необходимости используется в качестве начального координатного пространства для графических преобразований. Он обеспечивает масштабирование, преобразование, поворот, сдвиг и отражение. Мировое пространство измеряет 2^32 единицы в высоту на 2^32 единицы в ширину.
страница Используется либо в качестве следующего пространства после мирового пространства, либо в качестве начального пространства для графических преобразований. Он задает режим сопоставления. Пространство страницы также измеряет 2^32 единицы в высоту на 2^32 единицы в ширину.
device Используется в качестве следующего пространства после пространства страницы. Он разрешает только преобразование, что гарантирует, что источник пространства устройства сопоставляется с правильным расположением в физическом пространстве устройства. Пространство устройства измеряет 2^27 единиц в ширину на 2^27 единиц.
физическое устройство Окончательное (выходное) пространство для графических преобразований. Обычно он относится к клиентской области окна приложения; Однако она также может включать весь рабочий стол, полное окно (включая рамку, строку заголовка и строку меню) или страницу бумаги принтера или плоттера в зависимости от функции, которая получила дескриптор в контексте устройства. Размеры физического устройства зависят от размеров, заданных технологией дисплея, принтера или плоттера.

 

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

Для отображения выходных данных на физическом устройстве система копирует (или сопоставляет) прямоугольную область из одного координатного пространства в следующий с помощью преобразования, пока выходные данные не появятся на физическом устройстве целиком. Сопоставление начинается в мировом пространстве приложения, если приложение вызывает функцию SetWorldTransform ; В противном случае сопоставление происходит в пространстве страницы. Когда система копирует каждую точку в прямоугольной области из одного пространства в другое, она применяет алгоритм, называемый преобразованием. Преобразование изменяет (или преобразует) размер, ориентацию и форму объектов, копируемых из одного координатного пространства в другое. Хотя преобразование влияет на объект в целом, оно применяется к каждой точке или к каждой строке в объекте .

На следующем рисунке показано типичное преобразование, выполняемое с помощью функции SetWorldTransform .

Иллюстрация, показывающая прямоугольник, изменяющий размер и положение по мере отображения в мировом пространстве, пространстве страницы, пространстве устройства и устройстве