Иллюстрированный самоучитель по Visual Studio.Net


Режимы отображения координат - часть 2


Заметьте, что и World space и Page space измеряют плоскую область, размах которой по обеим координатам равняется 232 логических единиц, то есть более 4 миллиардов единиц. Page space работает совместно с Device space, чтобы обеспечить приложение единицами, не зависящими от типа физического устройства, такими как миллиметры и дюймы-(inches). Конечным координатным пространством, Physical Device space обычно является клиентская область окна приложения, или весь экран монитора, или страница бумаги принтера (плоттера). Размеры области физического устройства изменяются в зависимости от марки, технологии и т. д. Чтобы верно передать детали изображения, созданного в логической системе, в физическое устройство, система преобразовывает их путем отображения (mapping) прямоугольной области из одного координатного пространства в другое. При копировании каждой точки прямоугольной области из одного пространства в другое Windows применяет алгоритм трансформации, который в конечном счете изменяет размеры, ориентацию и форму всего объекта.

Так как рисование производится в логической структуре, называемой контекстом устройства, то рисунок не зависит от конкретного устройства, в которое будет осуществлен вывод изображения. Функциональность контекста устройства поддерживается классом CDC или одним из его потомков. Для выбора режима отображения используются методы этого класса:

  • SetMapMode — задание режима отображения координат;

  • SetWindowOrg — задание выделенной точки (начала отображения) в логической системе координат;

  • Setviewportorg — задание выделенной точки (начала отображения) в физической системе координат;
  • SetwindowExt — характеристика протяженности окна вдоль двух логических координат;

  • SetviewportExt — характеристика протяженности окна вдоль двух физических координат.

Восемь существующих режимов отображения координат задаются с помощью символьных констант, определенных в файле Wingdi.h:

#define MM_TEXT 1 // 1 лог. ед. - 1 пиксел

#define MM_LOMETRIC 2 // 1 лог. ед. - 0,1 мм



Начало  Назад  Вперед