Freigeben über


Skalierung

Die meisten CAD- und Zeichnungsanwendungen bieten Features, mit denen die vom Benutzer erstellte Ausgabe skaliert wird. Anwendungen, die Skalierungs- (oder Zoomfunktionen) enthalten, rufen die SetWorldTransform-Funktion auf, um den entsprechenden Weltbereich auf die Transformation für Seitenräume festzulegen. Diese Funktion empfängt einen Zeiger auf eine XFORM-Struktur , die die entsprechenden Werte enthält. Die Elemente eM11 und eM22 von XFORM geben die horizontale bzw. vertikale Skalierungskomponente an.

Bei einer Skalierung werden die vertikalen und horizontalen Linien (oder Vektoren), die ein Objekt bilden, in Bezug auf die x- oder y-Achse gestreckt oder komprimiert. Die folgende Abbildung zeigt ein Rechteck von 20 mal 20 Einheiten, das vertikal auf das Doppelte seiner ursprünglichen Höhe skaliert wird, wenn es vom Weltkoordinatenraum in den Seitenkoordinatenbereich kopiert wird.

Abbildung, die ein kleines Rechteck im Weltraum und ein größeres rechteck im Seitenbereich zeigt

In der obigen Abbildung messen die vertikalen Linien, die die Seiten des ursprünglichen Rechtecks definieren, 20 Einheiten, während die vertikalen Linien, die die Seiten des skalierten Rechtecks definieren, 40 Einheiten messen.

Die vertikale Skalierung kann durch den folgenden Algorithmus dargestellt werden.

y' = y * Dy 

Dabei ist y' die neue Länge, y die ursprüngliche Länge und Dy der vertikale Skalierungsfaktor.

Die horizontale Skalierung kann durch den folgenden Algorithmus dargestellt werden.

x' = x * Dx 

Dabei ist x' die neue Länge, x die ursprüngliche Länge und Dx der horizontale Skalierungsfaktor.

Die Transformationen für die vertikale und horizontale Skalierung können mithilfe einer 2-mal-2-Matrix zu einem einzelnen Vorgang kombiniert werden.

|x' y'|  =  |Dx   0|  *  |x y| 
            |0   Dy| 

Die 2-mal-2-Matrix, die die Skalierungstransformation erzeugt hat, enthält die folgenden Werte.

|1    0| 
|0    2|