Сдвига
Некоторые приложения предоставляют функции, которые позволяют сдвигать объекты, нарисованные в клиентской области. Приложения, использующие возможности сдвига, используют функцию SetWorldTransform для задания соответствующих значений в преобразовании «пространство мира» в пространство страницы. Эта функция получает указатель на структуру XFORM, содержащую соответствующие значения. Элементы eM12 и eM21 XFORM задают константы горизонтальной и вертикальной пропорциональности соответственно.
Существует два компонента преобразования сдвига. Первый изменяет вертикальные линии в объекте ; второй изменяет горизонтальные линии. На следующем рисунке показан прямоугольник объемом 20 на 20 единиц, срезаемый горизонтально при копировании из мирового пространства в пространство страницы.
Горизонтальный сдвига может быть представлен следующим алгоритмом:
x' = x + (Sx * y)
где x — исходная координата X, Sx — константа пропорциональности, а x' — результат преобразования сдвига.
Вертикальный сдвига может быть представлен следующим алгоритмом:
y' = y + (Sy * x)
где y — исходная координата y, Sy — константа пропорциональности, а y — результат преобразования сдвига.
Преобразования горизонтального сдвига и вертикального сдвига можно объединить в одну операцию с помощью матрицы 2 на 2.
|x' y'| == |x y| * | 1 Sx|
| Sy 1|
Матрица 2 на 2, создающая сдвига, содержит следующие значения:
|1 1|
|0 1|