matriks-global-lokal-dunia-transformasi

Sistem koordinat penting saat bekerja dengan grafik dan bentuk. Sumbu koordinat dapat diputar untuk mendapatkan sumbu baru melalui asal yang sama. Mari kita telusuri transformasi berikut termasuk transformasi Matrix, Global, Lokal, dan Dunia menggunakan bahasa C#. Selain itu, mari kita pelajari transformasi berikut melalui artikel ini:

Transformasi Matriks, Global, Lokal, dan Dunia – Instalasi C# API

Aspose.Drawing for .NET API mendukung pemrosesan objek gambar yang berbeda. Anda dapat dengan mudah membuat, mengedit, mengubah, atau merender grafik di aplikasi berbasis .NET. Cukup unduh file DLL dari bagian Rilis Baru. Di sisi lain, Anda dapat mengonfigurasinya dari NuGet dengan perintah instalasi berikut:

PM> Install-Package Aspose.Drawing

Menerapkan Transformasi Matriks Secara terprogram menggunakan C#

Kelas Matrix memiliki matriks affine 3 kali 3 yang merepresentasikan transformasi. Anda dapat menggunakannya untuk Memutar, Menerjemahkan, atau Menskalakan bentuk sesuai kebutuhan Anda. Langkah-langkah berikut menjelaskan cara menerapkan transformasi matriks:

  1. Membuat instance objek kelas Bitmap.
  2. Buat bentuk
  3. Terapkan transformasi Matriks

Kode di bawah ini menunjukkan cara menerapkan transformasi matriks secara terprogram menggunakan bahasa C#:

// Inisialisasi objek kelas Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Mendeklarasikan objek kelas Grafik
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Inisiasi objek kelas 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));

// Simpan gambar keluaran dengan transformasi 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);
}

Terapkan Transformasi Koordinat Global Secara terprogram dengan C#

Transformasi global digunakan untuk mengubah semua objek grafis dalam sebuah gambar. Anda dapat mengikuti langkah-langkah di bawah ini untuk menerapkan transformasi koordinat global:

  1. Menginisialisasi instance kelas Bitmap
  2. Deklarasikan objek kelas Grafik.
  3. Atur rotasi
  4. Menggambar bentuk dengan Transformasi Global

Kode berikut menguraikan transformasi koordinat global secara terprogram menggunakan C#:

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

// Tetapkan transformasi yang berlaku untuk setiap item yang ditarik:
graphics.RotateTransform(15);

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

// Simpan gambar keluaran dengan transformasi Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

Setel Transformasi Lokal Secara Terprogram dalam C#

Transformasi lokal terkait dengan bentuk atau grafik tertentu dalam sebuah gambar. Hal ini dapat dijelaskan dengan transformasi jalur grafik di mana hanya item dari jalur tersebut yang diubah. Anda dapat mengatur transformasi lokal dengan langkah-langkah berikut:

  1. Inisialisasi objek kelas Bitmap
  2. Deklarasikan objek kelas Graphics dan GraphicsPath.
  3. Buat bentuk dan tentukan Matrix
  4. Memanggil metode Transform

Cuplikan kode di bawah ini menjelaskan cara menyetel transformasi lokal secara terprogram menggunakan C#:

// Inisialisasi objek kelas 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);

// Tetapkan transformasi yang berlaku untuk jalur khusus yang akan ditarik:
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);

// Simpan gambar keluaran dengan transformasi lokal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

Terapkan Transformasi Dunia Secara terprogram menggunakan C#

Konversi koordinat Dunia ke koordinat Halaman dikenal sebagai Transformasi Dunia. Koordinat halaman tersebut kemudian digunakan untuk merender grafik pada perangkat yang berbeda. Jadi Anda bisa menerapkan transformasi dunia menggunakan C# dengan langkah-langkah di bawah ini:

  1. Inisialisasi objek kelas Bitmap
  2. Panggil metode TranslateTransform.
  3. Gambar sebuah bentuk

Kode berikut menunjukkan cara menerapkan transformasi dunia secara terprogram menggunakan bahasa C#:

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

// Tetapkan transformasi yang memetakan koordinat dunia ke koordinat halaman:
graphics.TranslateTransform(500, 400);

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

// Simpan gambar keluaran dengan Transformasi Dunia
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

Kesimpulan

Singkatnya, Anda telah belajar tentang berbagai transformasi yang terkait dengan grafik dan bentuk komputer. Anda harus dapat memahami detail transformasi Global, Lokal, dan Dunia menggunakan bahasa C#. Selanjutnya, Anda dapat membaca Dokumentasi API untuk detail lebih lanjut atau menghubungi kami melalui Forum Dukungan Gratis. Kami akan senang untuk membantu Anda!

Lihat juga