Bagikan melalui


Menggunakan Transformasi Global

Transformasi dunia adalah sifat dari kelas Graphics. Angka yang menentukan transformasi dunia disimpan dalam objek Matrix, yang mewakili matriks 3×3. Kelas Matrix dan Graphics memiliki beberapa metode untuk mengatur angka dalam matriks transformasi dunia.

Berbagai Jenis Transformasi

Dalam contoh berikut, kode pertama-tama membuat persegi panjang 50×50 dan menemukannya di asal (0, 0). Titik awal berada di sudut kiri atas area pengguna.

Rectangle rect = new Rectangle(0, 0, 50, 50);
Pen pen = new Pen(Color.FromArgb(128, 200, 0, 200), 2);
e.Graphics.DrawRectangle(pen, rect);
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)

Kode berikut menerapkan transformasi penskalaan yang memperluas persegi panjang dengan faktor 1,75 ke arah x dan menyusutkan persegi panjang dengan faktor 0,5 ke arah 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)

Hasilnya adalah persegi panjang yang lebih panjang ke arah x dan lebih pendek ke arah y daripada yang asli.

Untuk memutar persegi panjang alih-alih menskalakannya, gunakan kode berikut:

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)

Untuk menerjemahkan persegi panjang, gunakan kode berikut:

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)

Lihat juga