Vous êtes sur la page 1sur 4

ALGORITMA DDA

TITIK DAN GARIS


Persamaan Garis
y = mx + b Persamaan garis menurut koordinat Cartesian adalahdimana m adalah
slope/kemiringan garis yang dibentuk dari dua titik, yaitu (x1,y1) dan
(x2,y2).Untuk penambahan x sepanjang garis yaitu dx akan mendapatkan
penambahan y sebesar : dy = m . dx
Atribut
Atribut dasar untuk garis lurus adalah type (tipe), width (tebal) dan color (warna).
Dalam beberapa paket aplikasi grafik, garis ditampilkan dengan menggunakan
pilihan pen atau brush . Berikut ini dibicarakan bagaimanafungsi garis dapat
mengakomodasi bermacam-macam spesifikasi atribut.
Tipe Garis
Garis mempunyai beberapa linetype (tipe garis) diantaranya solid line (garis
tebal), dashed line (garis putus), dan dotted line (garis titik-titik).Algoritma
pembentukan garis dilengkapi dengan pengaturan panjang dan jarak yang
menampilkan bagian solid sepanjang garis.
Garis putus dibuat dengan memberikan nilai jarak dengan bagian solid yang sama.
Garis titiktitik dapat ditampilkan dengan memberikan jarak yang lebih besar dari
bagain solid.
Prosedur yang serupa digunakan pula untuk membuat bermacam-macam tipe
garis. Untuk mengatur atribut dalam program aplikasi PHIGS menggunakan fungsi:
setLinetype (lt)
Di mana parameter it menunjukkan integer positif dengan nilai 1,2,3,4 untuk
membuat garis solid, dashed, dotted atau dotted dash. nilai lain untuk
parametergaris dapat digunakan untuk menampilkan berbagai macam pola dot
dashed. Ketika parameter linetype diatur dalam aplikasi PHIGS, perintah line
drawing membuat garis dengan tipe garis tersebut.

Algoritma Pembentukan Garis


Algoritma pembentukan garis menggunakan 3 algoritma :
Algoritma Digital Differensial Analyzer atau biasa disebut dengan Algoritma
DDA adalah algoritma pembentukan garis berdasarkan
perhitungan dx maupun dy, menggunakan rumus dy= m . dx. Garis dibuat
menggunakan dua endpoint, yaitu titik awal dan titik akhir. Setiap koordinat titik
yang membentuk garis diperoleh dari perhitungan, kemudian dikonversikan
menjadi nilai integer.
Algoritma DDA bekerja atas dasar penambahan nilai x dan nilai y. Pada garis
lurus, turunan pertaman dari x dan y adalah konstanta. Sehingga untuk
memperoleh suatu tampilan turunan dengan ketelitian tinggi, suatu garis dapat
dibangkitkan dengan menambah nilai x dan y masing-masing sebesar ex dan
ey, dengan besaran nilai yang sangat kecil. Kondisi ideal ini sukar dicapai,
karenanya pendekatan yang mungkin dilakukan adalah berdasarkan piksel-piksel
yang bisa diamati / dicapai atau melalui penambahan atau pengurangan nilai x
dan y dengan suatu besaran dan membulatkannya ke nilai integer terdekat.
ALGORITMA GARIS DDA
Digital Diferensial Analyser (DDA) adalah algoritma pembentukan garis
berdasarkan perhitungan dx maupun dy, menggunakan rumus dy = m . dx. Garis
dibuat menggunakan dua endpoint, yaitu titik awal dan titik akhir. Setiap
koordinat titik yang membentuk garis diperoleh dari perhitungan, kemudian
dikonversikan menjadi nilai integer.
Langkah-langkah membentuk garis menurut algoritma DDA adalah :
1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis
2. Tentukan titik awal yaitu dan titik akhir .
3. Hitung dx = x1- x0 dan dy = y1 y0
4. Tentukan step = max( |dx| , |dy| )
5. Hitung penambahan koordinat pixel XInc = dx / step dan YInc = dy / step
6. Koordinat selanjutnya (x+XInc, y+yInc)
7. Posisi pada layar ditentukan dengan pembulatan nilai koordinat tersebut
8. Ulangi nomor 6 dan 7 untuk menentukan posisi pixel berikutnya. sampai
x=x1dan y=y1.

2. ALGORITMA BRESENHAM
Garis Lurus
Garis lurus dinyatakan dinyatakan dalam persamaan :
y = mx + c
(1)
dimana : m : gradient dan c : konstanta.
Untuk menggambarkan piksel-piksel dalam garis lurus, parameter yang digunakan
tergantung dari gradient, jika besarnya gradient diantara 0 dan 1, maka digunakan
sumbu x sebagai parameter dan sumbu y sebagai hasil dari fungsi, sebaliknya, bila
gradient melebihi 1, maka sumbu y digunakan sebagai parameter dan sumbu x
sebagai hasil dari fungsi, hal ini bertujuan untuk menghindari terjadinya gaps
karena adanya piksel yang terlewatkan. Hasil dari fungsi biasanya merupakan
bilangan real, sedangkan koordinat pixel dinyatakan dalam bilangan integer (x,y),
maka diperlukan operasi pembulatan kedalam bentuk integer terdekat.
Penggambaran garis lurus dengan metode diatas dimulai dengan operasibilangan
real untuk menghitung gradient m dan konstanta c.
m = (y2 y1 ) / (x2-x1)
(2)
c = y1 / m* x1*
(3)
Operasi bilangan real berikutnya adalah menghitung nilai y dengan persamaan (1)
Untuk mendapatkan koordinat piksel (x,y), untuk setiapnilai x, dari =x1 sampai
x=x2, operasi inilah yang perlu dihindari,karena operasi ini memerlukan waktu
operasi yang besar.
Algoritma Bresenham untuk Penggambaran Garis
Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan
koordinat piksel yang menggunakan persamaan (1), dengan cara menggantikan
operasi bilangan real perkalian dengan operasi penjumlahan, yang kemudian
dikenal dengan Algoritma Bresenham. Pada algoritma bresenham, nilai y kedua
dan seterusnya, dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama
yang perlu dilakukan operasi secara lengkap. Perbaikan algoritma ini ternyata
tidak menghasilkan perbaikan yang cukup siginifikan. Perbaikan berikutnya
dilakukan dengan cara menghilangkan operasi bilangan real dengan operasi
bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan
operasi bilangan real, terutama pada penambahan dan pengurangan.

ALGORITMA GARIS BRESSENHAM


Prosedur untuk menggambar kembali garis dengan membulatkan nilai x atau y ke
bilangan integer memerlukan waktu. serta variabel x,y maupun m memerlukan
bilangan real karena kemiringan merupakan nilai pecahan.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. Langkahlangkahnya 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
Bila Pk < 0 maka titik selanjutnya adalah (xk+1, yk) dan Pk+1=Pk+2dy
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

Vous aimerez peut-être aussi