Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Alcune applicazioni traducono (o spostano) oggetti disegnati nell'area client. chiamando la funzionesetWorldTransform diper impostare la trasformazione dello spazio globale appropriata sullo spazio delle pagine. La funzione SetWorldTransform riceve un puntatore a una strutturaXFORMcontenente i valori appropriati. I membri eDx eDy di XFORM specificano rispettivamente i componenti di conversione orizzontale e verticale.
Quando si verifica la conversione, ogni punto di un oggetto viene spostato verticalmente, orizzontalmente o entrambi, in base a una quantità specificata. La figura seguente mostra un rettangolo da 20 a 20 unità che è stato convertito a destra di 10 unità quando viene 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 conversione 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 conversione 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 traslazione orizzontale e verticale possono essere combinate in una singola operazione usando una matrice di 3 by-3.
|1 0 0|
|x' y' 1| = |x y 1| * |0 1 0|
|Dx Dy 1|
Le regole di moltiplicazione della matrice dichiarano che il numero di righe in una matrice deve essere uguale al numero di colonne nell'altro. Intero 1 nella matrice |x y 1| è un segnaposto aggiunto per soddisfare questo requisito.
La matrice 3 per 3 che ha prodotto la trasformazione di conversione illustrata contiene i valori seguenti.
|1 0 0|
|0 1 0|
|10 0 1|