Traduzione
Alcune applicazioni traducono (o spostano) oggetti disegnati nell'area client. chiamando la funzione SetWorldTransform per impostare lo spazio globale appropriato sulla trasformazione dello spazio a pagina. La funzione SetWorldTransform riceve un puntatore a una struttura XFORM contenente i valori appropriati. I membri eDx eDy di XFORM specificano rispettivamente i componenti di traduzione orizzontale e verticale.
Quando si verifica la traduzione , ogni punto in un oggetto viene spostato verticalmente, orizzontalmente o entrambi, in base a una quantità specificata. La figura seguente mostra un rettangolo di 20 unità che è stato tradotto a destra da 10 unità quando è stato copiato dallo spazio delle coordinate mondiali allo spazio delle coordinate della pagina.
Nella figura precedente, la coordinata x di ogni punto del rettangolo è maggiore di 10 unità rispetto alla coordinata x originale.
La traduzione orizzontale può essere rappresentata dall'algoritmo seguente.
x' = x + Dx
Dove x' è la nuova coordinata x, x è la coordinata x originale e Dx è la distanza orizzontale spostata.
La traduzione verticale può essere rappresentata dall'algoritmo seguente.
y' = y + Dy
Dove y' è la nuova coordinata y, y è la coordinata y originale e Dy è la distanza verticale spostata.
Le trasformazioni di traduzione orizzontale e verticale possono essere combinate in una singola operazione usando una matrice da 3 a 3.
|1 0 0|
|x' y' 1| = |x y 1| * |0 1 0|
|Dx Dy 1|
(Le regole della moltiplicazione matrice stato che il numero di righe in una matrice deve essere uguale al numero di colonne nell'altro. Numero intero 1 nella matrice |x y 1| è un segnaposto aggiunto per soddisfare questo requisito.
La matrice 3 by-3 che ha prodotto la trasformazione di traduzione illustrata contiene i valori seguenti.
|1 0 0|
|0 1 0|
|10 0 1|