matrice-globale-locale-mondo-trasformazione

I sistemi di coordinate sono importanti quando si lavora con la grafica e le forme. L’asse delle coordinate può essere ruotato per ottenere nuovi assi attraverso la stessa origine. Esaminiamo le seguenti trasformazioni, tra cui Matrix, Global, Local e World, usando il linguaggio C#. Inoltre, impariamo le seguenti trasformazioni attraverso questo articolo:

Trasformazione a matrice, globale, locale e mondiale: installazione dell’API C#

L’API Aspose.Drawing for .NET supporta l’elaborazione di diversi oggetti di disegno. Puoi facilmente creare, modificare, trasformare o eseguire il rendering di grafica nelle tue applicazioni basate su .NET. Scarica semplicemente il file DLL dalla sezione Nuove versioni. D’altra parte, puoi configurarlo da NuGet con il seguente comando di installazione:

PM> Install-Package Aspose.Drawing

Applicare la trasformazione della matrice a livello di codice usando C#

La classe Matrix ha una matrice affine 3 per 3 che rappresenta la trasformazione. Puoi usarlo per ruotare, traslare o ridimensionare una forma secondo le tue esigenze. I seguenti passaggi spiegano come applicare la trasformazione della matrice:

  1. Istanziare l’oggetto classe Bitmap.
  2. Crea una forma
  3. Applicare la trasformazione Matrix

Il codice seguente mostra come applicare la trasformazione della matrice a livello di codice usando il linguaggio C#:

// Inizializza l'oggetto della classe Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Dichiara l'oggetto della classe Graphics
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Avvia l'oggetto della classe Rectangle
Rectangle originalRentangle = new Rectangle(300, 300, 300, 200);
TransformPath(graphics, originalRentangle, (matrix) => matrix.Rotate(15.0f));
TransformPath(graphics, originalRentangle, (matrix) => matrix.Translate(-250, -250));
TransformPath(graphics, originalRentangle, (matrix) => matrix.Scale(0.3f, 0.3f));

// Salva l'immagine di output con la trasformazione Matrix
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\MatrixTransformations_out.png");

private static void TransformPath(Graphics graphics, Rectangle originalRentangle, Action<Matrix> transform)
{
    GraphicsPath path = new GraphicsPath();
    path.AddRectangle(originalRentangle);

    Matrix matrix = new Matrix();
    transform(matrix);
    path.Transform(matrix);

    Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
    graphics.DrawPath(pen, path);
}

Applicare la trasformazione delle coordinate globali a livello di codice con C#

La trasformazione globale viene utilizzata per trasformare tutti gli oggetti grafici in un disegno. È possibile seguire i passaggi seguenti per applicare la trasformazione delle coordinate globali:

  1. Inizializza un’istanza della classe Bitmap
  2. Dichiara l’oggetto classe Graphics.
  3. Imposta la rotazione
  4. Disegna una forma con Trasformazione globale

Il codice seguente elabora la trasformazione delle coordinate globali a livello di codice usando C#:

// Inizializza l'oggetto della classe Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Imposta una trasformazione che si applica a ogni elemento disegnato:
graphics.RotateTransform(15);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawEllipse(pen, 300, 300, 400, 200);

// Salva l'immagine di output con la trasformazione Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

Imposta la trasformazione locale a livello di codice in C#

La trasformazione locale è correlata a forme o elementi grafici specifici in un disegno. Può essere spiegato con la trasformazione di un percorso grafico in cui vengono trasformati solo gli elementi di quel percorso. È possibile impostare la trasformazione locale con i seguenti passaggi:

  1. Inizializza un oggetto della classe Bitmap
  2. Dichiara l’oggetto di classe Graphics e GraphicsPath.
  3. Crea una forma e definisci Matrix
  4. Chiama il metodo di trasformazione

Il frammento di codice seguente spiega come impostare la trasformazione locale a livello di codice usando C#:

// Inizializza l'oggetto della classe Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

GraphicsPath path = new GraphicsPath();
path.AddEllipse(300, 300, 400, 200);

// Impostare una trasformazione che si applica al percorso specifico da disegnare:
Matrix matrix = new Matrix();
matrix.RotateAt(45, new Point(500, 400));
path.Transform(matrix);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawPath(pen, path);

// Salva immagine di output con Trasformazione locale
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

Applicare la trasformazione mondiale a livello di codice usando C#

La conversione delle coordinate del mondo in coordinate della pagina è nota come trasformazione del mondo. Tali coordinate di pagina vengono quindi utilizzate per il rendering di grafica su dispositivi diversi. Quindi puoi applicare la trasformazione del mondo usando C# con i passaggi seguenti:

  1. Inizializza un oggetto della classe Bitmap
  2. Chiama il metodo TranslateTransform.
  3. Disegna una forma

Il codice seguente mostra come applicare la trasformazione del mondo a livello di codice usando il linguaggio C#:

// Inizializza l'oggetto della classe Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Imposta la trasformazione che mappa le coordinate mondiali sulle coordinate della pagina:
graphics.TranslateTransform(500, 400);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawRectangle(pen, 0, 0, 300, 200);

// Salva l'immagine di output con Trasformazione mondiale
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

Conclusione

In poche parole, hai appreso diverse trasformazioni relative alla computer grafica e alle forme. Devi essere in grado di comprendere i dettagli della trasformazione globale, locale e mondiale usando il linguaggio C#. Inoltre, puoi leggere la Documentazione API per maggiori dettagli o metterti in contatto con noi tramite i Forum di supporto gratuito. Ci piacerebbe aiutarti!

Guarda anche