Scheren
Einige Anwendungen bieten Features, die im Clientbereich gezeichnete Objekte scheren. Anwendungen, die Scherfunktionen verwenden, verwenden die SetWorldTransform--Funktion, um geeignete Werte im Weltbereich auf die Seitenbereichtransformation festzulegen. Diese Funktion empfängt einen Zeiger auf eine XFORM- Struktur, die die entsprechenden Werte enthält. Die Elemente eM12 und eM21 von XFORM geben die horizontalen bzw. vertikalen Proportionalitätskonstanten an.
Es gibt zwei Komponenten der Schertransformation. Die erste ändert die vertikalen Linien in einem Objekt; die zweite ändert die horizontalen Linien. Die folgende Abbildung zeigt ein Rechteck mit 20 x 20 Einheiten horizontal, wenn es aus dem Weltbereich in den Seitenbereich kopiert wird.
Eine horizontale Schere kann durch den folgenden Algorithmus dargestellt werden:
x' = x + (Sx * y)
Wobei x die ursprüngliche x-Koordinate ist, ist Sx die Verhältnismäßigkeitskonstante, und x' ist das Ergebnis der Schertransformation.
Ein vertikaler Scher kann durch den folgenden Algorithmus dargestellt werden:
y' = y + (Sy * x)
y ist die ursprüngliche y-Koordinate, Sy ist die Verhältnismäßigkeitskonstante, und y' ist das Ergebnis der Schertransformation.
Die Transformationen horizontaler Schere und vertikaler Schub können mit einer 2:2-Matrix in einen einzigen Vorgang kombiniert werden.
|x' y'| == |x y| * | 1 Sx|
| Sy 1|
Die 2:2-Matrix, die den Scher erzeugt hat, enthält die folgenden Werte:
|1 1|
|0 1|