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|