Baris
Garis adalah sekumpulan piksel yang disorot pada tampilan raster (atau sekumpulan titik pada halaman cetak) yang diidentifikasi oleh dua titik: titik awal dan titik akhir. Piksel yang terletak di titik awal selalu disertakan dalam garis, dan piksel yang terletak di titik akhir selalu dikecualikan. (Garis semacam ini kadang-kadang disebut inklusif-eksklusif.)
Saat aplikasi memanggil salah satu fungsi gambar garis, antarmuka perangkat grafis (GDI), atau dalam beberapa kasus driver perangkat, menentukan piksel mana yang harus disorot. GDI adalah pustaka tautan dinamis (DLL) yang memproses panggilan fungsi grafis dari aplikasi dan meneruskan panggilan tersebut ke driver perangkat. Driver perangkat adalah DLL yang menerima input dari GDI, mengonversi input ke perintah perangkat, dan meneruskan perintah tersebut ke perangkat yang sesuai. GDI menggunakan penganalisis diferensial digital (DDA) untuk menentukan set piksel yang menentukan garis. DDA menentukan set piksel dengan memeriksa setiap titik pada baris dan mengidentifikasi piksel tersebut pada permukaan tampilan (atau titik pada halaman cetak) yang sesuai dengan titik. Ilustrasi berikut menunjukkan garis, titik awal, titik akhir, dan piksel yang disorot dengan menggunakan DDA sederhana.
DDA yang paling sederhana dan paling umum adalah Bresenham, atau inkremental, DDA. Versi yang dimodifikasi dari algoritma ini menggambar garis di Windows. DDA inkremental dicatat karena kesederhanaannya, tetapi juga dicatat karena ketidakakuratannya. Karena membulatkan ke nilai bilangan bulat terdekat, terkadang gagal mewakili baris asli yang diminta oleh aplikasi. DDA yang digunakan oleh GDI tidak membulatkan ke bilangan bulat terdekat. Akibatnya, DDA baru ini menghasilkan output yang terkadang jauh lebih dekat dalam penampilan dengan baris asli yang diminta oleh aplikasi.
Nota
Jika aplikasi memerlukan output baris yang tidak dapat dicapai dengan DDA baru, aplikasi dapat menggambar garisnya sendiri dengan memanggil fungsilineDDAdan menyediakan DDA privat (LineDDAProc). Namun, fungsi LineDDA menggambar garis jauh lebih lambat daripada fungsi gambar garis. Jangan gunakan fungsi ini dalam aplikasi jika kecepatan menjadi perhatian utama.
Aplikasi dapat menggunakan DDA baru untuk menggambar satu baris dan beberapa segmen garis yang terhubung. Aplikasi dapat menggambar satu baris dengan memanggil fungsiLineTo. Fungsi ini menarik garis dari posisi saat ini hingga, tetapi tidak termasuk, titik akhir yang ditentukan. Aplikasi dapat menggambar serangkaian segmen garis yang terhubung dengan memanggil fungsiPolyline, menyediakan array titik yang menentukan titik akhir dari setiap segmen garis. Aplikasi dapat menggambar beberapa seri segmen garis yang terhubung yang terputus-putus dengan memanggil fungsi PolyPolyline, menyediakan titik akhir yang diperlukan.
Ilustrasi berikut menunjukkan output baris yang dibuat dengan memanggil fungsi LineTo, Polyline, dan PolyPolyline.
tiga dimensi