Algoritma
Bressenham
Prosedur yang terdapat pada algoritma ini adalah untuk
menggambar kembali garis dengan membulatkan nilai x atau y kebilangan integer dengan membutuhkan waktu, serta variable x,y dan m yang merupakan bilangan real karena
kemiringan merupakan nilai pecahan. Algoritma Bressenham ini mengembangkan algoritma klasik yang lebih menarik, karena
hanya menggunakan perhitungan matematika dengan bilangan integer. Dengan ini tidak perlu membulatkan nilai posisi setiap pixel setiap waktu.
Algoritma garis Bressenham disebut juga midpoint line algorithm karena algoritma konversi penambahan nilai integer yang juga dapat diadaptasi untuk
menggambar sebuah lingkaran.
Langkah-langkah untuk
membentuk garis menurut algoritma ini adalah :
1) .Tentukan dua titik yang akan dihubungkan
dalam pembentukan garis.
2) Tetukan salah satu titik disebelah kiri
sebagai titik awal (x0, y0) dan titik lainnya sebagai
titik akhir (x1, y1 ).
3)
Hitung
Δx, Δy, Δ2x, dan 2Δy – 2Δx.
4)
Hitung parameter p0 = 2Δy –
Δx.
5)
Untuk setiap xk sepanjang
jalur garis, dimulai dengan k = 0
·
bila pk <0 maka titik
selanjutnya (xk+1, yk) dan pk+1 = pk
+2Δy
·
bila tidak maka titik selanjutnya adalah
(xk+1, yk+1)
dan pk+1=pk+2Δ-y2Δx.
6)
Ulangi langkah terakhir untuk menentukan
posisi pixel selanjutnya, sampai x=xn.
Contoh :
Untuk menggambarkan suatu algoritma Bressenham
dalam pembentukan suatu garis yang
menghubungkan antara titik (10,10) dan (17,16), pertama-tama ditentukan bahwa
titik (10,10) berada disebelah kiri yang merupakan titik awal, sedangkan (17,16)
merupakan titik akhir. Posisi yang membentuk garis dapat ditentukan dengan
perhitungan dibawah ini :
·
x = x1– x0
dan y= y1 – y0
x = 7 dan y = 6
·
parameter p0 = 2Δy – x
p0 = 5
·
increment 2Δy = 12 2Δy – 2Δx = -2
Pada algoritma bresenham, nilai y kedua dan seterusnya, dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi secara lengkap. Jadi, Algoritma Bressenham ini merupakan algoritma
pembentukan garis berdasarkan selisih antara garis yang diinginkan terhadap
setengah ukuran dari pixel yang sedang digunakan.
Tidak ada komentar:
Posting Komentar