Freigeben über


Verwenden der globalen Transformation

Die globale Transformation 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 Klassen Matrix und Graphics weisen mehrere Methoden zum Festlegen der Zahlen in der Welttransformationsmatrix auf.

Verschiedene Arten von Transformationen

Im folgenden Beispiel erstellt der Code zuerst ein Rechteck mit den Maßen 50×50 und positioniert es am Ursprung (0, 0). Der Ursprung befindet sich in der oberen linken Ecke des Clientbereichs.

Rectangle rect = new Rectangle(0, 0, 50, 50);
Pen pen = new Pen(Color.FromArgb(128, 200, 0, 200), 2);
e.Graphics.DrawRectangle(pen, rect);
Dim rect As New Rectangle(0, 0, 50, 50)
Dim pen As New Pen(Color.FromArgb(128, 200, 0, 200), 2)
e.Graphics.DrawRectangle(pen, rect)

Der folgende Code wendet eine Skalierungstransformation an, die das Rechteck um einen Faktor von 1,75 in x-Richtung erweitert und das Rechteck um den Faktor 0,5 in y-Richtung verkleinern wird:

e.Graphics.ScaleTransform(1.75f, 0.5f);
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ScaleTransform(1.75F, 0.5F)
e.Graphics.DrawRectangle(pen, rect)

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

Um das Rechteck zu drehen, anstatt es zu skalieren, verwenden Sie den folgenden Code:

e.Graphics.ResetTransform();
e.Graphics.RotateTransform(28); // 28 degrees
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ResetTransform()
e.Graphics.RotateTransform(28) ' 28 degrees
e.Graphics.DrawRectangle(pen, rect)

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

e.Graphics.ResetTransform();
e.Graphics.TranslateTransform(150, 150);
e.Graphics.DrawRectangle(pen, rect);
e.Graphics.ResetTransform()
e.Graphics.TranslateTransform(150, 150)
e.Graphics.DrawRectangle(pen, rect)

Weitere Informationen