matrix-global-lokale-welt-transformation

Koordinatensysteme sind wichtig beim Arbeiten mit Grafiken und Formen. Die Koordinatenachse kann gedreht werden, um neue Achsen durch denselben Ursprung zu erhalten. Lassen Sie uns die folgenden Transformationen untersuchen, einschließlich Matrix, Global, Local und World-Transformation unter Verwendung der C# Sprache. Lassen Sie uns außerdem die folgenden Transformationen durch diesen Artikel lernen:

Matrix, globale, lokale und weltweite Transformation – C# API Installation

Aspose.Drawing for .NET API unterstützt die Verarbeitung verschiedener Zeichnungsobjekte. Sie können Grafiken in Ihren .NET-basierten Anwendungen ganz einfach erstellen, bearbeiten, transformieren oder rendern. Laden Sie einfach die DLL Datei aus dem Abschnitt Neue Versionen herunter. Andererseits können Sie es über NuGet mit dem folgenden Installationsbefehl konfigurieren:

PM> Install-Package Aspose.Drawing

Wenden Sie die Matrixtransformation programmgesteuert mit C# an

Die Matrix Klasse hat eine affine 3-mal-3-Matrix, die die Transformation darstellt. Sie können es verwenden, um eine Form gemäß Ihren Anforderungen zu drehen, zu verschieben oder zu skalieren. Die folgenden Schritte erläutern, wie Sie die Matrixtransformation anwenden:

  1. Instanziiere das Klassenobjekt Bitmap.
  2. Erstellen Sie eine Form
  3. Wenden Sie die Matrixtransformation an

Der folgende Code zeigt, wie die Matrixtransformation programmgesteuert mithilfe der C# Sprache angewendet wird:

// Bitmap Klassenobjekt initialisieren
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Deklarieren Sie das Graphics Klassenobjekt
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Initiieren Sie das Rectangle Klassenobjekt
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));

// Ausgabebild mit Matrixtransformation speichern
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);
}

Globale Koordinatentransformation programmgesteuert mit C# anwenden

Die globale Transformation wird verwendet, um alle grafischen Objekte in einer Zeichnung zu transformieren. Sie können die folgenden Schritte ausführen, um die globale Koordinatentransformation anzuwenden:

  1. Initialisiert eine Instanz der Bitmap Klasse
  2. Deklarieren Sie das Klassenobjekt Graphics.
  3. Drehung einstellen
  4. Zeichnen Sie eine Form mit Global Transformation

Der folgende Code arbeitet die globale Koordinatentransformation programmgesteuert mit C# aus:

// Bitmap Klassenobjekt initialisieren
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Legen Sie eine Transformation fest, die für alle gezeichneten Elemente gilt:
graphics.RotateTransform(15);

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

// Speichern Sie das Ausgabebild mit Glabal-Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

Lokale Transformation programmgesteuert in C# festlegen

Lokale Transformation bezieht sich auf bestimmte Formen oder Grafiken in einer Zeichnung. Dies kann durch die Transformation eines Grafikpfads erklärt werden, bei der nur die Elemente dieses Pfads transformiert werden. Sie können die lokale Transformation mit den folgenden Schritten festlegen:

  1. Initialisiert ein Objekt der Bitmap Klasse
  2. Deklarieren Sie das Klassenobjekt Graphics und GraphicsPath.
  3. Erstellen Sie eine Form und definieren Sie Matrix
  4. Transform methode aufrufen

Das folgende code snippet erläutert, wie Sie die lokale Transformation programmgesteuert mit C# festlegen:

// Bitmap Klassenobjekt initialisieren
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);

// Legen Sie eine Transformation fest, die für den zu zeichnenden Pfad gilt:
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);

// Speichern Sie das Ausgabebild mit lokaler Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

Wenden Sie World Transformation programmgesteuert mit C# an

Die Umwandlung von Weltkoordinaten in Seitenkoordinaten wird als Welttransformation bezeichnet. Solche Seitenkoordinaten werden dann zum Rendern von Grafiken auf verschiedenen Geräten verwendet. So können Sie die Welttransformation mit C# mit den folgenden Schritten anwenden:

  1. Initialisiert ein Objekt der Bitmap Klasse
  2. Rufen Sie die Methode TranslateTransform auf
  3. Zeichne eine Form

Der folgende Code zeigt, wie die Welttransformation programmgesteuert mithilfe der C# Sprache angewendet wird:

// Bitmap Klassenobjekt initialisieren
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Legen Sie die Transformation fest, die Weltkoordinaten auf Seitenkoordinaten abbildet:
graphics.TranslateTransform(500, 400);

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

// Speichern Sie das Ausgabebild mit World Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

Fazit

Kurz gesagt, Sie haben verschiedene Transformationen im Zusammenhang mit Computergrafiken und Formen kennengelernt. Sie müssen in der Lage sein, die Details der globalen, lokalen und weltweiten Transformation mit der C# Sprache zu verstehen. Darüber hinaus können Sie die API-Dokumentation für weitere Einzelheiten lesen oder sich über die kostenlosen Support-Foren mit uns in Verbindung setzen. Wir helfen Ihnen gerne weiter!

Siehe auch