Condividi tramite


Utilizzo della trasformazione di tipo World

La trasformazione di tipo World è una proprietà della classe Graphics. I numeri che specificano la trasformazione di tipo World sono memorizzati in un oggetto Matrix che rappresenta una matrice 3x3. Le classi Matrix e Graphics contengono numerosi metodi per l'impostazione dei numeri nella matrice della trasformazione di tipo World.

Tipi di trasformazione diversi

Nel codice di esempio riportato di seguito viene creato un rettangolo 50x50 che viene quindi collocato in corrispondenza del punto di origine (0, 0). Il punto di origine si trova in corrispondenza dell'angolo superiore sinistro dell'area client.

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

Nel codice che segue viene applicata una trasformazione di adattamento che estende il rettangolo di un fattore 1,75 sull'asse x e lo riduce di un fattore 0,5 sull'asse 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 che, rispetto all'originale, è più lungo sull'asse x e più corto sull'asse y.

Per ruotare il rettangolo anziché adattarlo utilizzare il seguente codice:

        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 effettuare la traslazione del rettangolo utilizzare il seguente codice:

        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

Riferimenti

Matrix

Altre risorse

Sistemi di coordinate e trasformazioni

Utilizzo di trasformazioni nel codice gestito GDI+