Utilizzo della trasformazione del Mondo
La trasformazione globale è una proprietà della classe Graphics. I numeri che specificano la trasformazione globale vengono archiviati in un oggetto Matrix, che rappresenta una matrice 3×3. Le classi Matrix e Graphics hanno diversi metodi per impostare i numeri nella matrice di trasformazione globale.
Tipi diversi di trasformazioni
Nell'esempio seguente il codice crea prima un rettangolo 50×50 e lo individua all'origine (0, 0). L'origine si trova nell'angolo superiore sinistro dell'area client.
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)
Il codice seguente applica una trasformazione di ridimensionamento che espande il rettangolo di un fattore pari a 1,75 nella direzione x e riduce il rettangolo di un fattore pari a 0,5 nella direzione 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)
Il risultato è un rettangolo più lungo nella direzione x e più breve nella direzione y rispetto all'originale.
Per ruotare il rettangolo anziché ridimensionarlo, usare il codice seguente:
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)
Per convertire il rettangolo, usare il codice seguente:
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)
Vedere anche
.NET Desktop feedback