Sdílet prostřednictvím


Použití světové transformace

Transformace světa je vlastnost třídy Graphics. Čísla, která určují světovou transformaci, jsou uložena v objektu Matrix, který představuje 3×3 matici. Třídy Matrix a Graphics mají několik metod pro nastavení čísel v matici světové transformace.

Různé typy transformací

V následujícím příkladu kód nejprve vytvoří obdélník 50×50 a vyhledá ho na počátku (0, 0). Původ je v levém horním rohu klientské oblasti.

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)

Následující kód použije transformaci měřítka, která rozšíří obdélník o faktor 1,75 ve směru x a zmenší obdélník faktorem 0,5 ve směru y:

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

Výsledkem je obdélník, který je delší ve směru x a kratší ve směru y než původní.

Pokud chcete obdélník otočit místo škálování, použijte následující kód:

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)

K překladu obdélníku použijte následující kód:

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)

Viz také