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