Bresenham Algorithm

4
Algoritma Pembentukan Garis Garis dibuat dengan menentukan dua endpoint atau posisi titik awal dan akhir dari suatu garis. Kemudian peralatan output membuat garis sesuai posisi titik-titik tersebut. Untuk peralatan analog seperti plotter dan random-scan display garis lurus dapa dihasilkan dengan halus. Pada peralatan digital garis lurus dihasilkan dengan menetapkan titik diskrit antara titik awal dan akhir. Posisi titik diskrit sepanjang garis lurus data diperhitungkan dari persamaan garis tersebut. Untuk menentukan nilai suatu titik, dapat digunakan prosedur dasar dimana x sebagai nilai kolom pixel dan y sebagai nilai scanline sebagai berikut : setPixel(x,y) bila nilai x dan y sudah tersimpan padaframe buffer untuk dapat menampilkannyapada layer menggunakan fungsi dasar getPixel(x,y) 1. Algoritma Digital Differential Analyzer (DDA) Algoritma Digital Differential Analyzer (DDA) adalah algoritma pembentukangaris berdasarkan perhitungan dx maupun dy dengan menggunakan rumus dy = m.dx.Garis dibuat dengan menentukan dua endpoint yaitu titik awal dan titik akhir. Setiapkoordinat titik yang membentuk garis diperoleh dari perhitungan kemudian dikonversikanmenjadi nilai integer. Algoritma pembentukan garis DDA: 1) Tentukan dua titik yang akan dihubungkan dalam pembentukan garis. 2) Tentukan salah satu titik sebagai awal(x0,y0) dan titik akhir(x1,y1). 3) Hitung dx=x1x0, dan dy= y1y0. 4) Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan nilai x maupun nilai y, dengan cara : *Bila nilai absolut dari dx lebih besar dari absolut dy, maka langkah= absolut dari dx. *Bila tidak maka langkah= absolut dari dy 5) Hitung penambahan koordinat pixel yaitu x_increment=dx/langkah, dan y_increment=dy/langkah 6) Koordinat selanjutnya (x+x_increment, y+y_increment) 7) Posisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut. 8) Ulangi nomor 6 dan 7 untuk menentukan posisi pixel selanjutnya,sampai x=x1 dan y=y1.

description

This article will explain to you about Bresenham Algorithm and Theorem of Algorithm.

Transcript of Bresenham Algorithm

Page 1: Bresenham Algorithm

Algoritma Pembentukan Garis

Garis dibuat dengan menentukan dua endpoint atau posisi titik awal dan akhir dari suatu

garis. Kemudian peralatan output membuat garis sesuai posisi titik-titik tersebut. Untuk peralatan

analog seperti plotter dan random-scan display garis lurus dapa dihasilkan dengan halus.

Pada peralatan digital garis lurus dihasilkan dengan menetapkan titik diskrit antara titik

awal dan akhir. Posisi titik diskrit sepanjang garis lurus data diperhitungkan dari persamaan garis

tersebut.

Untuk menentukan nilai suatu titik, dapat

digunakan prosedur dasar dimana x sebagai nilai

kolom pixel dan y sebagai nilai scanline sebagai

berikut :

setPixel(x,y)

bila nilai x dan y sudah tersimpan padaframe buffer

untuk dapat menampilkannyapada layer

menggunakan fungsi dasar

getPixel(x,y)

1. Algoritma Digital Differential Analyzer (DDA)

Algoritma Digital Differential Analyzer (DDA) adalah algoritma pembentukangaris

berdasarkan perhitungan dx maupun dy dengan menggunakan rumus dy = m.dx.Garis dibuat

dengan menentukan dua endpoint yaitu titik awal dan titik akhir. Setiapkoordinat titik yang

membentuk garis diperoleh dari perhitungan kemudian dikonversikanmenjadi nilai integer.

Algoritma pembentukan garis DDA:

1) Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.

2) Tentukan salah satu titik sebagai awal(x0,y0) dan titik akhir(x1,y1).

3) Hitung dx=x1x0, dan dy= y1y0.

4) Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan nilai x

maupun nilai y, dengan cara :

*Bila nilai absolut dari dx lebih besar dari absolut dy, maka langkah= absolut dari dx.

*Bila tidak maka langkah= absolut dari dy

5) Hitung penambahan koordinat pixel yaitu x_increment=dx/langkah, dan

y_increment=dy/langkah

6) Koordinat selanjutnya (x+x_increment, y+y_increment)

7) Posisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut.

8) Ulangi nomor 6 dan 7 untuk menentukan posisi pixel selanjutnya,sampai x=x1

dan y=y1.

Page 2: Bresenham Algorithm

Keuntungan dari algoritma ini adalah tidak perlu menghitung koordinatberdasarkan

persamaan yang lengkap (menggunakan metode offset). Sedangkankerugiannya adalah adanya

akumulasi Round-off errors, sehingga garis akan melencengdari garis lurus, selain itu operasi

round-off juga menghabiskan waktu.

Contoh penerapan algoritma DDA :

Contoh 1 :

garis dengan endpoint (1,3,8,5)

Penggambaran garis:

Berikut ini adalah penerapan algoritma DDA dengan Java:

class hitungDDA{

public void hitung(int p1x, int p1y, int p2x, int p2y) {

while (p1x < p2x) {

double step = 0;

int dx = p2x - p1x;

int dy = p2y - p1y;

int absolutDx = Math.abs(dx);

int absolutDy = Math.abs(dy);

if (absolutDx > absolutDy) {

step = absolutDx;

}

else {

step = absolutDy;

}

double xplus = Math.ceil(dx/step);

Page 3: Bresenham Algorithm

double yplus = Math.ceil(dy/step);

p1x += xplus;

p1y += yplus;

System.out.println("titik berikutnya:("+p1x+","+p1y+")");

}

}

}

class Run{

public static void main (String[] args) {

hitungDDA dda = new hitungDDA();

//misalnya titik p1=(1,1) dan p2=(5,5)

dda.hitung(1,1,5,5);

}

}

2. Algoritma Bresenham

Algoritma Garis Bressenham merupakan algoritma yang menentukan dimana titik-titik

dalam raster n-dimensi harus ditempatkan untuk membentuk 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 mana semua

itu merupakan proses yang sangat murah dalam arsitektur komputer yang standar. Algoritma

ini adalah algoritma yang paling awal dikembangkan di bidang grafika komputer . Algoritma

ini juga dapat membentuk lingkaran dengan sedikit penambahan pada algoritma-nya.

Prinsip dari algoritma Bresenham adalah :

1. Sumbu vertikal memperlihatkan posisi scan line.

2. Sumbu horizontal memperlihatkan kolom pixel

3. Pada tiap langkah, penentuan pixel selanjutnya didasari oleh parameter integer yang

nilainya proporsional dengan pengurangan antara vertical separations dari dua posisi dari nilai

actual.

Untuk menentukan jumlah pixel yang membuat suatu garis menggunakan algoritma bresenhem

adalah sebagai berikut :

1. Masukan 2 endpoints, simpan endpoints kiri sebagai (x0, y0) dan kanan (x1,y1)

2. Hitung konstanta Δx, Δy, 2Δy, 2Dx,2Δy–2Δx dan nilai awal parameter keputusan p0=

2Δy –Δx

3. Pada setiap xk di garis, dimulai dari k=0, ujilah : Jika pk 0 maka plot (xk+1, yk+1) dan

pk= pk+ 2Δy -2Δx

4. Ulangi tahap 4 sampai mencapai x,y yang di tuju.

Page 4: Bresenham Algorithm

contoh penerapan algoritma Bresenham :

Contoh 1:

Garis dengan titik (20,10,30,18)

∆ X = 10, ∆Y = 8

Po = 2 ∆ Y -∆X = 6

2.∆Y = 16

2 ∆ Y - 2∆ X = -4