Algoritma Bresenham untuk Garis

contoh algoritma Bresenham, bresenham algorithm
Berhubung ada tugas tentang algoritma Bresenham, sekalian aja saya bagikan buat teman-teman semua. Barangkali ada yang sedang belajar tentang algoritma ini. Saya berharap semoga bisa bermanfaat buat teman semua. Baik langsung saja.
Algoritma Bresenham merupakan salah satu algoritma yang digunakan untuk membuat sebuah garis. Contohnya seperti pada CorelDraw, Paint dan yang lainnya. Dengan Paint misalnya, untuk membuat sebuah garis kita bisa langsung dengan memilih Line pada Tools yang tersedia, kemudian bisa langsung menarik garis tersebut. Nah, kali ini
kita akan mencoba menguak sedikit bagaimana sebuah garis itu dibuat.
Sebelum melangkah jauh, mari kita pahami apakah itu garis ? Garis merupakan kumpulan dari beberapa titik sehingga membentuk sebuah objek yang dinamakan garis. Hehehe (teman bisa cari referensi yang lebih relevan lagi).
Berikut ini merupakan algoritma Bresenham :


Algoritma Bresenham, belajar algoritma, bresenham algorithm


Sekarang, mari kita mulai dengan sebuah Contoh :
Diketahui sebuah sumbu dengan titik koordinat (10,15) dan (20,12). Gambarkan garis tersebut dengan menggunakan Algoritma Bresenham. 

Penyelesaian :
  1. (X1, Y1) dan (X2, Y2)
  2. ΔX  = X2 – X= 20 – 10 = 10
  3. ΔY = Y2 – Y1 = 12 – 5 = 7
  4. P0  = 2ΔY – ΔX = 2(7) – 10 = 4
  5. A = 2ΔY = 14
  6. B = 2ΔY - 2ΔX = -6
  7. Tabel Iterasi (putara)
K
Pk
(Xk+1, Yk+1)
0
4
(11 , 6)
1
-2
(12 , 6)
2
12
(13 , 7)
3
6
(14 , 8)
4
0
(15 , 9)
5
-6
(16 , 9)
6
8
(17 , 10)
7
2
(18 , 11)
8
-4
(19 , 11)
9
10
(20 , 12)

Aturan :
  1. Jika Pk bernilai positif, maka tambahkan hasilnya dengan B dan nilai X dan Y ditambah 1.
  2. Jika Pk bernilai negatif, maka tambahkan hasilnya dengan A dan nilai X ditambah 1, sedangkan Y ditambah 0 (tetap).
  3. Putaran dihentikan jika koordinat X dan Y sudah mencapai batas Akhir, dalam kasusu ini (20 , 12).


Berikut ini adalah hasil garisnya . 

contoh algoritma Bresenham, bresenham, algoritma, panduan, latihan, kasus

Gambar dengan Pixel diperbesar.

Load disqus comments

0 komentar