Verwenden der globalen Transformation

Aktualisiert: November 2007

Die globale Transformation ist eine Eigenschaft der Graphics-Klasse. Die Zahlen, die die globale Transformation angeben, sind in einem Matrix-Objekt gespeichert, das eine 3x3-Matrix darstellt. Die Matrix-Klasse und die Graphics-Klasse verfügen über mehrere Methoden zum Festlegen der Zahlen in der globalen Transformationsmatrix.

Andere Typen von Transformationen

Im folgenden Beispiel wird durch den Code zunächst ein 50x50-Rechteck erstellt und dann am Ursprung (0, 0) positioniert. Der Ursprung befindet sich in der oberen linken Ecke des Clientbereichs.

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)

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

Durch folgenden Code wird eine Skalierungstransformation durchgeführt, die das Rechteck in x-Richtung um den Faktor 1.75 vergrößert und es in y-Richtung um den Faktor 0.5 verkleinert:

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 in der x-Richtung länger und in der y-Richtung kürzer als das Ursprungsrechteck ist.

Um das Rechteck zu drehen, anstatt es zu skalieren, verwenden Sie 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);

Um das Rechteck zu verschieben, verwenden Sie folgenden Code:

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);

Siehe auch

Referenz

Matrix

Weitere Ressourcen

Koordinatensysteme und Transformationen

Verwenden von Transformationen in Managed GDI+