Масштабирование


Большинство программ автоматизированного проектирования (CAD) и рисующих программ обеспечивают функциональные свойства, которые масштабируют выводимые данные, созданные пользователем. Приложения, которые включают в себя возможность масштабирования (или изменения размера изображения), вызывают функцию SetWorldTransform, чтобы установить преобразование соответствующего общего (мирового) пространство в пространство страницы. Эта функция получает указатель на структуру XFORM, содержащую соответствующие значения. Члены eM11 и eM22 структуры XFORM определяют горизонтальные и вертикальные компоненты масштабирования, соответственно.

Когда масштабирование (scaling) происходит, вертикальные и горизонтальные линии (или векторы), которые составляют объект, растягиваются или сжимаются относительно оси X или Y. Нижеследующая иллюстрация показывает прямоугольник 20×20 единиц , масштабируемый вертикально в двое к его первоначальной высоте, когда копируется из мирового координатного пространства в координатное пространство страницы.

Масштабирование из мирового координатного пространства в координатное пространство страницы

На предыдущей иллюстрации, вертикальные линии, которые определяют сторону первоначального прямоугольника, измеряются 20-ю единицами, в то время как вертикальные линии, которые определяют стороны масштабируемого прямоугольника, измеряются 40 единицами.

Вертикальное масштабирование может быть представлено нижеследующим алгоритмом.

y' = y * Dy

Где,

y' - является новой длиной,

 y - первоначальная длина,

 а Dy - множитель вертикального масштабирования.

Горизонтальное масштабирование может быть представлено нижеследующим алгоритмом.

x' = x * Dx 

Где,

 x' является новой длиной,

 x - первоначальная длина,

 а Dx - множитель горизонтального масштабирования.

Преобразования вертикального и горизонтального масштабирования могут быть объединены в единственную операцию при использовании матрицы 2×2.

|x' y'|  =  |Dx   0|  *  |x y| 
  |0   Dy| 

Матрица 2×2, которая произвела преобразование масштабирования, содержит нижеследующие значения.

|1    0| 
|0    2| 

Назад в оглавление
На главную страницу

Hosted by uCoz