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