Freigeben über


Scheren

Einige Anwendungen bieten Features, die Objekte, die im Clientbereich gezeichnet wurden, scheren. Anwendungen, die Schubfunktionen verwenden, verwenden die SetWorldTransform-Funktion , um geeignete Werte in der Transformation von Weltraum in Seitenraum festzulegen. Diese Funktion empfängt einen Zeiger auf eine XFORM-Struktur , die die entsprechenden Werte enthält. Die Mitglieder eM12 und eM21 von XFORM geben die horizontalen und vertikalen Proportionalitätskonstanten an.

Es gibt zwei Komponenten der Schubtransformation. Die erste ändert die vertikalen Linien in einem Objekt. die zweite ändert die horizontalen Linien. Die folgende Abbildung zeigt ein Rechteck von 20 mal 20 Einheiten, das horizontal aus dem Weltraum in den Seitenraum kopiert wird.

Abbildung eines Rechtecks im Weltraum und eines Trapezios im Seitenraum

Eine horizontale Scherung kann durch den folgenden Algorithmus dargestellt werden:

x' = x + (Sx * y) 

wobei x die ursprüngliche x-Koordinate, Sx die Proportionalitätskonstante und x' das Ergebnis der Schubtransformation ist.

Eine vertikale Scherung kann durch den folgenden Algorithmus dargestellt werden:

y' = y + (Sy * x) 

wobei y die ursprüngliche y-Koordinate ist, Sy die Proportionalitätskonstante und y' das Ergebnis der Schertransformation ist.

Die Transformationen horizontal-scheren und vertikal-scheren können unter Verwendung einer 2-by-2-Matrix zu einem einzigen Vorgang kombiniert werden.

|x' y'| == |x y| * |  1   Sx| 
                   | Sy    1| 

Die 2-mal-2-Matrix, die die Scherung erzeugt hat, enthält die folgenden Werte:

|1    1| 
|0    1|