Sabtu, 09 Oktober 2010

ALGORITMA GARIS BRESSENHAM. . .


Algoritma garis Bresenham adalah suatu algoritma yang menentukan titik-titik dalam n-dimensi raster harus diplot untuk membentuk pendekatan dekat dengan garis lurus antara dua titik yang diberikan.  

Hal ini biasanya digunakan untuk menggambar garis pada layar komputer, karena hanya menggunakan integer penambahan, pengurangan dan pergeseran bit , yang semuanya murah operasi yang sangat dalam arsitektur komputer standar. Ini adalah salah satu algoritma paling awal dikembangkan di bidang komputer grafis . Sebuah ekstensi kecil dengan algoritma asli juga berhubungan dengan lingkaran gambar.

Bressenham mengembangkan algoritma klasik yang lebih menarik, karena hanya menggunakan perhitungan matematik dengan bantuan bilangan integer. Dengan demikian tidak perlu membulatkan nilai posisi pixel setiap waktu. Langkah-langkahnya adalah sebagai berikut:
  
1.    Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.
2.    Tentukan salah satu titik disebelah kiri sebagai titik awal (x0,y0) dan titik lainnya sebagai titik akhir (x1,y1)
3.    Hitung dx, dy, 2dx dan 2dy-2dx
4.    Hitung parameter P0 = 2dy – dx
5.    Untuk setiap xk sepanjang garis dimulai dengan k=0
o    Bila Pk < 0 maka titik selanjutnya adalah (xk+1, yk) dan Pk+1=Pk+2dy
o    Bila tidak maka titik selanjutnya adalah (xk+1, yk+1) dan Pk+1=Pk+2dy-2dx
6.    Ulangi nomor 5 untuk menentukan posisi pixel selanjutnya sampai x=x1 dan y=y1



 

 

Algoritma DDA yang dijelaskan diatas menentukan bahwa pertambahan nilai X dan Y untuk posisi berikutnya yang akan dihidupkan adalah suatu bilangan rill. Pada kenyataannya, operasi menggunakan bilangan integer lebih sederhana dibandingkan operasi menggunakan bilangan rill. Dengan alasan itulah, Bresenham memperkenalkan algoritma yang didasarkan atas bilangan integer. Hal itu juga berkaitan erat dengan keadaan sebenarnya dari suatu layar tampilan.

Pada setiap iterasi algoritma Bresenham, salah satu posisi (X atau Y) diubah nilainya menggunakan 1. Jika nilai salah satu posisi diubah, misalnya X, maka nilai Y bisa diubah, tetapi bisa juga dibuat tetap, berdasarkan suatu nilai ketelitian yang dipakai untuk mencatat jarak antara garis yang sesungguhnya dengan pixel yang akan dihidupkan, dan diukur tegak lurus denagn sumbu yang memiliki pertambahan paling besar. Dengan cara tersebut, jika pertambahan paling besar adalah kearah X, maka nilai ketelitian e ditentukan sejajar dengan sumbu Y, atau sebaliknya.



Dalam setiap iterasi algoritma Bresenham, kemiringan garis, ∆Y/∆X, ditambahkan pada factor kesalah e. sebelumnya penambahan dilaksanakan, tanda bilangan e digunakan untuk menentukan perlu tidaknya penambahan pada nilai y, jika e bernilai positif, berarti garis yang sesungguhnya terletak diatas pixel yang ditinjau sehingga nilai Y ditambah satu. Sebaliknya, jika bernilai negatif, nilai Y tidak perlu ditambah. Berdasarkan algoritma itu, bisa disusun prosedur sederhana menggunakan turbo pascal sebagai berikut:



Referensi :
2.Wikipedia.com

Tidak ada komentar:

Posting Komentar