Freigeben über


Verwenden der globalen Transformation

Die Welttransformation ist eine Eigenschaft der Graphics-Klasse . Die Zahlen, die die Welttransformation angeben, werden in einem Matrix-Objekt gespeichert, das eine 3 ×3-Matrix darstellt. Die Matrix- und Graphics-Klassen verfügen über mehrere Methoden zum Festlegen der Zahlen in der Welttransformationsmatrix. Die Beispiele in diesem Abschnitt bearbeiten Rechtecke, da Rechtecke einfach zu zeichnen sind und die Auswirkungen von Transformationen auf Rechtecke leicht zu erkennen sind.

Wir beginnen mit dem Erstellen eines 50 mal 50-Rechtecks und suchen es am Ursprung (0, 0). Der Ursprung befindet sich in der oberen linken Ecke des Clientbereichs.

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.DrawRectangle(&pen, rect);

Der folgende Code wendet eine Skalierungstransformation an, die das Rechteck um einen Faktor von 1,75 in der X-Richtung streckt und das Rechteck um einen Faktor von 0,5 in der Y-Richtung verkleinert:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.ScaleTransform(1.75f, 0.5f);
graphics.DrawRectangle(&pen, rect);

Das Ergebnis ist ein Rechteck, das in der X-Richtung länger und in der Y-Richtung kürzer ist als das Original.

Um das Rechteck zu rotieren, anstatt es zu skalieren, verwenden Sie den folgenden Code anstelle des vorherigen Codes:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.RotateTransform(28.0f);
graphics.DrawRectangle(&pen, rect);

Für eine Translation des Rechtecks verwenden Sie den folgenden Code:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.TranslateTransform(150.0f, 150.0f);
graphics.DrawRectangle(&pen, rect);