Spiegelung

Einige Anwendungen stellen Features zur Verfügung, die im Clientbereich gezeichnete Objekte widerspiegeln (oder spiegeln). Anwendungen, die Reflektionsfunktionen enthalten, verwenden die SetWorldTransform-Funktion, um die entsprechenden Werte im Weltraum auf seitenbasierte Transformationen zu setzen. Diese Funktion empfängt einen Zeiger auf eine XFORM-Struktur, die die entsprechenden Werte enthält. Die eM11- und eM22-Member von XFORM geben die horizontalen bzw. vertikalen Reflektionskomponenten an.

Die Reflektionstransformation erstellt ein Spiegelbild eines Objekts in Bezug auf die x- oder y-Achse. Kurz gesagt: Die Reflektion ist nur eine negative Skalierung. Um eine horizontale Reflektion zu erzeugen, werden x-Koordinaten mit 1 multipliziert. Um eine vertikale Reflektion zu erzeugen, werden y-Koordinaten mit 1 multipliziert.

Horizontale Reflektion kann durch den folgenden Algorithmus dargestellt werden:

x' = -x 

Wobei x die x-Koordinate und x' das Ergebnis der Reflektion ist.

Die 2 by 2-Matrix, die horizontale Reflektion erzeugt hat, enthält die folgenden Werte:

|-1    0| 
|0     1| 

Vertikale Reflektion kann durch den folgenden Algorithmus dargestellt werden:

y' = -y 

Wobei y die y-Koordinate und y' das Ergebnis der Reflektion ist.

Die 2 by 2-Matrix, die vertikale Reflektion erzeugt hat, enthält die folgenden Werte:

|1    0| 
|0   -1| 

Die Vorgänge für horizontale Reflektion und vertikale Reflektion können mithilfe der folgenden 2 by 2-Matrix zu einem einzelnen Vorgang kombiniert werden:

|-1    0| 
|0    -1|