Tradução
Alguns aplicativos convertem (ou deslocam) objetos desenhados na área do cliente. chamando a função SetWorldTransform para definir o espaço de mundo apropriado para a transformação de espaço de página. A função SetWorldTransform recebe um ponteiro para uma estrutura XFORM que contém os valores apropriados. Os membros eDx e eDy de XFORM especificam os componentes de tradução horizontal e vertical, respectivamente.
Quando a tradução ocorre, cada ponto em um objeto é deslocado verticalmente, horizontalmente ou ambos, por um valor especificado. A ilustração a seguir mostra um retângulo de 20 por 20 unidades que foi traduzido para a direita por 10 unidades quando copiado do espaço de coordenadas mundiais para o espaço de coordenadas de página.
Na ilustração anterior, a coordenada x de cada ponto no retângulo é 10 unidades maior que a coordenada x original.
A tradução horizontal pode ser representada pelo algoritmo a seguir.
x' = x + Dx
Onde x' é a nova coordenada x, x é a coordenada x original e Dx é a distância horizontal movida.
A tradução vertical pode ser representada pelo algoritmo a seguir.
y' = y + Dy
Onde y' é a nova coordenada y, y é a coordenada y original e Dy é a distância vertical movida.
As transformações de tradução horizontal e vertical podem ser combinadas em uma única operação usando uma matriz de 3 por 3.
|1 0 0|
|x' y' 1| = |x y 1| * |0 1 0|
|Dx Dy 1|
(As regras de multiplicação de matriz afirmam que o número de linhas em uma matriz deve ser igual ao número de colunas na outra. O inteiro 1 na matriz |x y 1| é um espaço reservado que foi adicionado para atender a esse requisito.)
A matriz 3 por 3 que produziu a transformação de tradução ilustrada contém os valores a seguir.
|1 0 0|
|0 1 0|
|10 0 1|