Некоторые программы обеспечивают функциональные возможности, которые сдвигают фрагмент изображения объекта, нарисованного в рабочей области. Приложения, которые используют возможности сдвига, используют функцию SetWorldTransform, чтобы установить соответствующие значения в преобразовании мирового пространства в страничное. Эта функция получает указатель на структуру XFORM, содержащую соответствующие значения. Члены eM12 и eM21 структуры XFORM определяют горизонтальный и вертикальный коэффициенты пропорциональности, соответственно.
Есть две компоненты преобразования сдвига (shear). Первая изменяет вертикальные линии в объекте; вторая изменяет горизонтальные линии. Нижеследующая иллюстрация показывает 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| |