Reflection
Alcune applicazioni forniscono funzionalità che riflettono (o rispecchiano) gli oggetti disegnati nell'area client. Le applicazioni che contengono funzionalità di reflection usano la funzione SetWorldTransform per impostare i valori appropriati nella trasformazione spazio a pagina nello spazio globale. Questa funzione riceve un puntatore a una struttura XFORM contenente i valori appropriati. I membri eM11 e eM22 di XFORM specificano rispettivamente i componenti di reflection orizzontale e verticale.
La trasformazione reflection crea un'immagine speculare di un oggetto rispetto all'asse x o y. In breve, la reflection è semplicemente un ridimensionamento negativo. Per produrre una reflection orizzontale, le coordinate x vengono moltiplicate per -1. Per produrre una reflection verticale, le coordinate y vengono moltiplicate per -1.
La reflection orizzontale può essere rappresentata dall'algoritmo seguente:
x' = -x
dove x è la coordinata x e x' è il risultato della reflection.
La matrice 2 per 2 che ha prodotto la reflection orizzontale contiene i valori seguenti:
|-1 0|
|0 1|
La reflection verticale può essere rappresentata dall'algoritmo seguente:
y' = -y
dove y è la coordinata y e y' è il risultato della reflection.
La matrice 2 per 2 che ha prodotto la reflection verticale contiene i valori seguenti:
|1 0|
|0 -1|
Le operazioni di reflection orizzontale e reflection verticale possono essere combinate in una singola operazione usando la matrice 2-by-2 seguente:
|-1 0|
|0 -1|