Antialias dengan Garis dan Kurva

Saat Anda menggunakan Windows GDI+ untuk menggambar garis, Anda menyediakan titik awal dan titik akhir garis, tetapi Anda tidak perlu memberikan informasi apa pun tentang piksel individual di baris. GDI+ bekerja bersama dengan perangkat lunak driver tampilan untuk menentukan piksel mana yang akan diaktifkan untuk menampilkan garis pada perangkat tampilan tertentu.

Pertimbangkan garis merah lurus yang berubah dari titik (4, 2) ke titik (16, 10). Asumsikan sistem koordinat memiliki asalnya di sudut kiri atas dan bahwa unit pengukuran adalah piksel. Asumsikan juga bahwa sumbu x menunjuk ke kanan dan sumbu y menunjuk ke bawah. Ilustrasi berikut menunjukkan tampilan garis merah yang diperbesar yang digambar pada latar belakang multiwarna.

ilustrasi memperlihatkan piksel merah solid pada latar belakang multiwarna

Perhatikan bahwa piksel merah yang digunakan untuk merender garis buram. Tidak ada piksel transparan sebagian yang terlibat dalam menampilkan garis. Jenis penyajian garis ini memberikan garis tampilan berliku, dan garisnya terlihat sedikit seperti tangga. Teknik mewakili garis dengan tangga ini disebut aliasing; tangga adalah alias untuk garis teoritis.

Teknik yang lebih canggih untuk merender garis melibatkan penggunaan piksel transparan sebagian bersama dengan piksel merah murni. Piksel diatur ke merah murni atau ke beberapa perpaduan warna merah dan warna latar belakang tergantung pada seberapa dekat mereka dengan garis. Jenis penyajian ini disebut antialisis dan menghasilkan garis yang dianggap mata manusia lebih halus. Ilustrasi berikut menunjukkan bagaimana piksel tertentu dipadukan dengan latar belakang untuk menghasilkan garis antialisis.

ilustrasi memperlihatkan piksel yang berwarna merah pada latar belakang yang sama

Antialias (menghaluskan) juga dapat diterapkan pada kurva. Ilustrasi berikut menunjukkan tampilan elips yang diperbesar.

ilustrasi elips yang terdiri dari nuansa piksel biru yang berbeda pada latar belakang putih

Ilustrasi berikut menunjukkan elips yang sama dalam ukuran aktualnya, sekali tanpa antialias dan sekali dengan antialias.

cuplikan layar dua elipsis: yang memiliki antialiasing tampak jauh lebih halus

Untuk menggambar garis dan kurva yang menggunakan antialias, buat objek Grafis dan teruskan SmoothingModeAntiAlias ke metode Graphics::SetSmoothingMode-nya . Kemudian panggil salah satu metode gambar dari objek Grafis yang sama.

myGraphics.SetSmoothingMode(SmoothingModeAntiAlias);
myGraphics.DrawLine(&myPen, 0, 0, 12, 8);

SmoothingModeAntiAlias adalah elemen enumerasi SmoothingMode .