Verwenden der globalen Transformation

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

Wir beginnen mit dem Erstellen eines Rechtecks von 50 durch 50 und dem Suchen 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 den Faktor 1,75 in x-Richtung erweitert und das Rechteck um den Faktor 0,5 in 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 länger in x-Richtung und kürzer in y-Richtung als das Original ist.

Verwenden Sie anstelle des vorangehenden Codes den folgenden Code, um das Rechteck zu drehen, anstatt es zu skalieren:

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

Verwenden Sie den folgenden Code, um das Rechteck zu übersetzen:

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