Некоторые программы перемещают (или сдвигают) объекты, нарисованные в рабочей области при помощи вызова функции SetWorldTransform, чтобы установить соответствующее преобразование общего (мирового) пространства в пространство страницы. Функция SetWorldTransform получает указатель на структуру XFORM, содержащую соответствующие значения. Члены eDx и eDy структуры XFORM определяют горизонтальные и вертикальные компоненты переноса, соответственно.
Когда происходит перенос (translation), каждая точка в объекте сдвигается вертикально, горизонтально, или в оба направления, на заданное количество единиц измерения. Нижеследующая иллюстрация показывает прямоугольник 20 на 20 единиц, который был перемещен вправо на 10 единиц, когда был скопирован из мирового координатного пространства в координатное пространства страницы.
На предыдущей иллюстрации, x-координата каждой точки в прямоугольнике - на 10 единиц больше, чем первоначальная x-координата.
Горизонтальный перенос может быть представлен нижеследующим алгоритмом.
x' = x + Dx |
Где,
x' - является новой x-координатой,
x - первоначальная x-координата,
а Dx - расстояние перемещения по горизонтали.
Вертикальный перенос может быть представлен нижеследующим алгоритмом.
y' = y + Dy |
Где,
y' - является новой y-координатой,
y - первоначальная y-координата,
а Dy - расстояние перемещения по вертикали.
Горизонтальные и вертикальные преобразования переноса могут быть объединены в единственную операцию при использовании матрицы 3Î3.
|1 0 0| |x' y' 1| = |x y 1| * |0 1 0| |Dx Dy 1| |
(Правила матричного умножения определяют, что число рядов в одной матрице должно равняться числу колонок в другой. Целое число 1 в матрице |x y 1 | - структурный нуль, который был добавлен, чтобы отвечать этому требованию.)
Матрица 3Î3, которая произвела иллюстрированное преобразование переноса, содержит нижеследующие значения.
|1 0 0| |0 1 0| |10 0 1| |