Condividi tramite


Utilizzo della trasformazione di tipo World

La trasformazione mondiale è una proprietà della classe Graphics . I numeri che specificano la trasformazione mondiale vengono archiviati in un oggetto Matrix , che rappresenta una matrice di 3 ×3. Le classi Matrice e Grafica hanno diversi metodi per impostare i numeri nella matrice di trasformazione mondiale. Gli esempi in questa sezione modificano i rettangoli perché i rettangoli sono facili da disegnare ed è facile vedere gli effetti delle trasformazioni sui rettangoli.

Iniziamo creando un rettangolo da 50 a 50 e individuandolo all'origine (0, 0). L'origine si trova nell'angolo superiore sinistro dell'area client.

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.DrawRectangle(&pen, rect);

Il codice seguente applica una trasformazione di ridimensionamento che espande il rettangolo in base a un fattore pari a 1,75 nella direzione x e compatta il rettangolo in base a un fattore pari a 0,5 nella direzione y:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.ScaleTransform(1.75f, 0.5f);
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 anziché il codice precedente:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.RotateTransform(28.0f);
graphics.DrawRectangle(&pen, rect);

Per tradurre il rettangolo, usare il codice seguente:

Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.TranslateTransform(150.0f, 150.0f);
graphics.DrawRectangle(&pen, rect);