Umumnya persamaan garis lurus pada koordinat kartesius diwujudkan dalam
persamaan garis : y=m.x+b. Jika dimisalkan pada dua titik(x0,y0 dan x1,y1) akan
dibuat sebuah garis lurus, kita dapat menentukan nilai “m’ dan “b” dengan
persamaan berikut:
m= y1-y0 / x1-x0
b=y1 – m.x1
Algoritma untuk menggambar garis pada komputer didasarkan pada dua
persamaan di atas. dimana m adalah gradien atau kemiringan garis tersebut.
1.Algoritma DDA
Algoritma digital differential analyzer(DDA), Prinsip algoritma ini adalah mengambil
nilai integer terdekat dengan jalur garis berdasarkan atas sebuah titik yang telah
ditentukan sebelumnya(titik awal garis).
Algoritma pembentukan garis DDA:
1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis.
2. Tentukan salah satu titik sebagai awal(x_awal,y_awal) dan titik
akhir(x_akhir,y_akhir).
3. Hitung Dx=x_akhir – x_awal, dan Dy= y_akhir – y_awal.
4. Tentukan langkah, yaitu dengan cara jarak maksimum jumlah penambahan
nilai x maupun nilai y, dengan cara:
5. Bila nilai absolut dari Dx lebih besar dari absolut Dy, maka langkah= absolut
dari Dx.
6. Bila tidak maka langkah= absolut dari Dy
7. Hitung penambahan koordinat pixel yaitu x_increment=Dx/langkah,dan y_increment=Dy/langkah
8. Koordinat selanjutnya (x_awal+x_increment, y_awal+y_increment)
9. Gambar pixel di (x_awal, y_awal)
10. Ulangi nomor 8 dan 9 sampai x=x_akhir dan y=y_akhir.
Untuk lebih jelasnya bisa dilihat pada contoh program disini
2.Algoritma Bressenham
Tidak seperti Algoritma DDA, Algoritma Bressenham tidak membulatkan nilai posisi
pixel setiap waktu. Algoritma Bressenham hanya menggunakan penambahan nilai
integer yang juga dapat diadaptasi untuk menggambar lingkaran.
Berikut ini langkah langkah untuk membentuk garis menurut algoritma Bressenham:
1. Tentukan dua titik yang akan dihubungkan
2. Tentukan salah satu titik sebagai titik awal yaitu (x_awal,y_awal) dan titik
lainnya sebagai titik akhir(x_akhir,y_akhir).
3. Hitung Dx = x_akhir-x_awal, Dy = y_akhir – y_awal.
4. Hitung parameter = (2Dy) – Dx
5. Jika parameter kurang dari 0, maka parameter = parameter + (2 * Dy).
6. Jika tidak maka y_awal = y_awal +1 dan parameter = parameter + (2 * Dy) –(2 * Dx).
7. Gambar pixel di (x_awal, y_awal)
8. x= x+1
9. Ulangi langkah nomor 5-8 sampai x_awal = x_akhir.
untuk implementasinya bisa di lihat di sini
3.Algoritma Mid Point
Pada algoritma ini pembuatan lingkaran dilakukan dengan menentukan satu titik
awal. Bila titik awal pada lingkaran(x,y) maka terdapat tiga posisi lain, sehingga
dapat diperoleh delapan titik. Dengan demikian sebenarnya hanya diperlukan untuk
menghitung segmen 45’ dalama menentukan lingkaran selengkapnya.
Algoritma Lingkaran Midpoint juga disebut algoritma lingkaran Bressenham.
Bressenham mengembangkan generator lingkaran yang cukup efisien. Algoritma
yang digunakan membentuk semua titik berdasarkan titik pusat dengan
penambahan semua jalur sekeliling lingkaran. Algoritma ini diturunkan dari algoritma
Midpoint untuk pembentukan garis. Dalam hal ini hanya diperhatikan bagian 45’ dari
suatu lingkaran dan menggunakan CirclePoints untuk menampilkan titik dari seluruh
lingkaran.
Langkah langkah untuk membentuk lingkaran algoritma Midpoint:
1. Tentukan jari-jari dengan titk pusat lingkaran(x_pusat,y_pusat) kemudian diperoleh (x,y)=(0,r)
2. Hitung nilai dari parameter = p = 1-r
3. Gambar pixel pada delapan titik utama, yaitu :
(x_pusat + x, y_pusat+y)
(x_pusat – x, y_pusat+y)
(x_pusat + x, y_pusat-y)
(x_pusat – x, y_pusat-y)
(x_pusat + y, y_pusat+x)
(x_pusat – y, y_pusat+x)
(x_pusat + y, y_pusat-x)
(x_pusat – y, y_pusat-x)
kemudian x = x+1
4. Jika p<0 maka p = p + ( 2x ) + 6
5. Jika tidak maka y = y-1 dan p = p + 2 * ( x-y ) +1
6. Ulangi No. 3 – 5 sampai x = y
Elips merupakan modifikasi dari bentuk lingkaran, dengan memasukkan mayor dan
minor axis pada prosedur lingkaran. Elips ditentukan oleh satu set titik dengan
memperhitungkan jumlah jarak dari kedua posisi.
sekian dulu ya...kita jumpa lagi di lain kesempatan.Daaaaaahhhhhh.....
0 comments:
Post a Comment