Delen via


De wereldtransformatie gebruiken

De wereldtransformatie is een eigenschap van de Graphics klasse. De getallen die de wereldtransformatie opgeven, worden opgeslagen in een Matrix-object, dat een matrix van 3×3 vertegenwoordigt. De klassen Matrix en Graphics hebben verschillende methoden voor het instellen van de getallen in de wereldtransformatiematrix.

Verschillende typen transformaties

In het volgende voorbeeld maakt de code eerst een rechthoek van 50×50 en zoekt deze op de oorsprong (0, 0). De oorsprong bevindt zich in de linkerbovenhoek van het klantgebied.

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)

Met de volgende code wordt een schaaltransformatie toegepast waarmee de rechthoek met een factor van 1,75 in de x-richting wordt uitgebreid en de rechthoek wordt verkleind met een factor van 0,5 in de y-richting:

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

Het resultaat is een rechthoek die langer in de x-richting ligt en korter is in de y-richting dan het origineel.

Gebruik de volgende code om de rechthoek te draaien in plaats van deze te schalen:

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)

Gebruik de volgende code om de rechthoek te vertalen:

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)

Zie ook