Perbezaan antara Algoritma DDA dan Bresenham Perbezaan Antara
Digital Differential Algorithm (DDA) Algoritma Bresenhams adalah algoritma lukisan digital dan digunakan dalam grafik komputer untuk membuat gambar. Sebelum ini, kami menggunakan penganalisis analisis untuk mengira piksel dan dengan itu lukisan garis telah dibuat. Tetapi kaedah analitikal ini tidak tepat seperti kaedah digital yang menggunakan algoritma digital ini dan dengan setiap bidang, kami telah mencipta kaedah kualiti yang lebih tinggi dalam grafik komputer juga. Ciptaan algoritma ini adalah contoh yang sempurna. Sebelum kita meneruskan, mari kita melihat konsep di sebalik algoritma ini. Walaupun ia kelihatan dari skop perbincangan kita, adalah penting untuk menunjukkan perbezaan asas antara kedua-dua. Jika anda benar-benar biasa dengan algoritma, anda boleh melompat ke perbezaan sebenar yang terletak di hujung halaman ini.
Apakah Algoritma Berbeza Digital (DDA)?
DDA kebanyakannya digunakan untuk menarik garis dalam grafik komputer dan menggunakan nilai sebenar semasa meramalkan nilai pixel seterusnya. Marilah kita menganggap nilai pixel awal sebagai (X0, Y0) (X0, Y0) dan piksel destinasi sebagai (X1, Y1) (X1, Y1). Kami akan mempelajari cara mengira nilai pixel destinasi dari nilai piksel yang diketahui (X0, Y0) (X0, Y0) seperti di bawah.
- Bagaimana untuk mengira nilai mata destinasi menggunakan DDA?
Langkah-1: Di sini kita mempunyai input (X0, Y0) (X0, Y0) dan kita harus mengenal pasti sama ada garis itu berjalan sejajar dengan paksi-x atau paksi y. Untuk mencari itu, mari kita sekarang hitung perbezaan antara nilai piksel awal dan destinasi.
dx = X1 - X0
dy = Y1 - Y0
Langkah-2: Sekarang, kita telah mengenal pasti perbezaannya dan kita harus menarik garisan sepanjang paksi x jika 'dx' Jika tidak, kita harus menarik garis selari dengan paksi-y. Inilah pengiraan sebenar dari segi bahasa komputer.
jika (mutlak (dx)> mutlak (dy))
Langkah = mutlak (dx);
else
Langkah = mutlak (dy);
Langkah-3: Sekarang, sudah tiba masanya untuk mengenal pasti koordinat sebenar 'x' atau nilai koordinat piksel 'y' untuk menarik garisan. Langkah
X increment = dx / (float); Langkah
Y inclement = dy / (float);
Langkah-4: Ini perlu dikira sehingga kita mencapai pixel destinasi. Algoritma DDA melupuskan nilai piksel ke nilai integer terdekat ketika melakukan pengiraan. Berikut adalah contoh kod yang telah dibincangkan sekarang.
Untuk (int v = 0; v { x = x + X increment; Kenaikan y = y + Y; putpixel (Pusingan (x), Pusingan (y)); } Kami selesai dengan melukis garis menggunakan DDA dan marilah kita pergi ke Bresenham sekarang! Ia juga merupakan algoritma lukisan garis digital dan dicipta oleh Bresenham pada tahun 1962 dan itulah sebabnya ia mempunyai nama yang sama. Algoritma ini lebih tepat dan ia menggunakan pengurangan & tambahan untuk mengira nilai piksel semasa melukis garis. Ketepatan algoritma Bresenham boleh dipercayai semasa melukis lengkung & bulatan juga. Marilah kita melihat bagaimana algoritma ini berfungsi. Langkah-1: Algoritma Bresenham menganggap koordinat piksel awal sebagai (x a + 1 , y a ). Langkah-2: Ia secara automatik mengira nilai piksel seterusnya sebagai (x a + 1 , y a + 1 ), dan algoritma mengira dengan menambah atau menolak persamaan yang telah dibentuk. Algoritma ini mengira nilai-nilai yang tepat tanpa pembulatan dan kelihatan lebih mudah juga! Contoh Contoh Algoritma Bresenham: Memandangkan data, (x1, y1) = (0, 0) dan (x2, y2) = (-8, -4). Marilah kita mengira nilai perbezaan seperti di bawah. Δx = x2-x1 = -8-0 = 8 Oleh itu, nilai tambahan untuk x = Δx / x2 = 8 / -8 = -1. Δy = y2-y1 = -4-0 = 4 Oleh itu, nilai tambahan untuk y = Δy / y2 = 4 / -4 = -1. Oleh itu, e = 2 * (4) - (8) = 8-8 = 0 Dengan pengiraan di atas, biarkan kita tabulasi nilai-nilai yang dihasilkan. Nilai koordinat y diselaraskan berdasarkan pemboleh ubah keputusan dan kami hanya mengabaikan perhitungannya di sini. 0 0 0 ). Aritmetik lebih mudah di Bresenham apabila dibandingkan dengan DDA. Kecekapan: Seperti yang telah dibincangkan sebelumnya, algoritma Bresenham menggunakan aritmetik yang lebih mudah daripada DDA dan menghasilkan keputusan yang cekap. Kelajuan: Ketepatan: Walaupun DDA menggunakan nilai terapung, ketepatan DDA tidak lebih baik daripada Bresenham. Pelbagai faktor mempengaruhi konsep ini dan oleh itu, Bresenham lebih tepat daripada DDA. Rounding off: Lihat sahaja perhitungan DDA di sini. Langkah-langkah X increment = dx / (float) Apa gunanya? S. Tidak Perbezaan dalam Algoritma Bresenham Kenapa nama itu? Ia dicipta oleh J. E. Bresenham pada tahun 1962 dan dengan itu namanya. 2.Apakah Algoritma Bresenham?
0 0
1
0
Nilai
(- 2, -1)
-2
-1
0
(- 3, -1)
-1
Nilai
(- 4, -2)
-4
-2
0
(- 5, -2)
-5 > -2
Nilai
(- 6, -3)
-6
-3
0
(- 7, -3)
-7
-3
Nilai
(-8, -4)
-8
-4
0
Perbezaan antara Algoritma DDA & Bresenham
:
Pengiraan Aritmatika:
DDA menggunakan nilai sebenar dalam pengiraannya dengan penggunaan mata terapung. Nilai pixel atau titik seterusnya ditentukan dengan persamaan pembezaan
X increment = dx / (float) langkah-langkah
Y increment = dy / (float)
Di sini tidak ada pemalar tetap digunakan tetapi di titik tetap algoritma Bresenham digunakan dalam pengiraan aritmetik. Algoritma Bresenham menggunakan aritmetik Integer, tidak seperti DDA.
Jenis operasi yang digunakan:
DDA menyelesaikan persamaan pembezaan dengan operasi pendaraban dan pembahagian. Anda dapat melihat perkara yang sama di sini, langkah X increment = dx / (float). Algoritma Bresenham menggunakan operasi tambahan dan penolakan dan anda dapat melihat sama di sini dalam persamaan pengiraan nilai piksel seterusnya (x
a + 1 , y