Professional Documents
Culture Documents
Untuk memenuhi salah satu tugas mata kuliah Grafika Komputer semester IV
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI MAULANA MALIK IBRAHIM MALANG 2012
1. Algoritma Bressenham Tujuan dari algoritma Bressenham ini adalah untuk menghindari pembulatan nilai seperti pada algoritma DDA. 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 riel dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan operasi bilangan riel, terutama pada penambahan dan pengurangan. Langkah-langkah: 1. Tentukan dua titik yang akan dihubungkan dalam pembentukan garis. 2. Tentukan salah satu titik di sebelah kiri sebagai titik awal, yaitu (x 0,y0) dan titik lainnya sebgai titik akhir (x1,y1). 3. Hitung dx,dy,2dx dan 2dy-2dx. 4. Hitung parameter P0 = 2dy-dx 5. Untuk setiap Xk sepanjang jalur garis, dimulai dengan k=0,bila pk <0,>k+1, yk), dan Pk+1 = Pk+2dybila tidak, maka titik selanjutnya adalah (xk+1,yk+1), dan Pk+1 = Pk+2dy-2dx 6. Ulangi langkah no 5 untuk menentukan posisi pixel selanjutnya, sampai x = x1 dan y = y1. Flowchart
start
Tentukan salah satu titik di sebelah kiri sebagai titik awal yaitu(x0,y0) dan titik lainnya sebagai titik akhir(x1,y1).
For x=x0;x<x1;x++
YES
pk < 0
NO
Keluaran titik
Next x
Finish
2. Algoritma DDA Algoritma DDA bekerja bekerja atas dasar penambahan nilai x dan nilai y. Pada garis lurus, turunan pertama dari x dan y adalah konstanta. Sehingga untuk memperoleh suatu tampilan dengan ketelitian tinggi, suatu garis dapat
dibangkitkan dengan menambah nilai x dan y masing-masing sebesar ex dan ey, dengan besaran dengan nilai yang sangat kecil.Kondisi ideal ini sukar dicapai, karenanya pendekatan yang mungkin dilakukan adalah berdasarkan piksel-piksel yang bisa dialamati/dicapai atau melalui penambahan atau pengurangan nilai x dan y dengan suatu besaran dan membulatkannya ke nilai integer terdekat. Langkah-langkah 1. Tentukan 2 buah titik. 2. Tentukan yang menjadi titik awal (X0,Y0) dan titik akhir (X1,Y1). 3. Hitung Dx dan DyDx = X1-X0 dan Dy = Y1 Y0 4. Bandingkan Abs(Dx) dan Abs(Dy)Jika Abs(Dx) > Abs(Dy) makaSteps = Abs(Dx) bila tidak Steps = Abs(Dy) 5. Hitung penambahan koordinat pixel, yaitu:X_increment = dx/steps, danY_increment = dy/steps. 6. Koordint selanjutnya, yaituX+X_incrementY+Y_increment 7. Posisi pixel ditentukan dengan pembulatan nilai koordinat tersebut. 8. Ulangi langkah 6 dan 7 untuk posisi selanjutnya sampai X = X1, Y = Y1 Flowchart
START
Tentukan salah satu titik sebagai awal(x0,y0) dan titik akhir(x1,y1)
Absolut dari dy
No
Absolut dx>absolut dy
Yes
Absolut dari dx
For x=x0;x<x1;x++
Posisi pixel pada layar ditentukan dengan pembulatan nilai koordinat tersebut
Finish
3. Algoritma MidPoint 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, yaitu oktan kedua dari x=0 ke x=R/2, dan menggunakan CirclePoints untuk menampilkan titik dari seluruh lingkaran. Langkah langkah untuk membentuk lingkaran algoritma Circle Midpoint: 1. Tentukan radius r dengan titik pusat lingkarang(xc,yc) kemudian diperoleh
3. Tentukan nilai awak k=0 untuk setiap posisi xk berlaku sebagai berikut: Bila Pi<0, maka titik selanjutnya adalah (xk+i,yk) dan Pk+i=Pk+2xk+i+1 Bila tidak, maka selanjutnya adalah
4. Tentukan titik simetris pada ketujuh oktan yang lain 5. Gerakkan setiap posisi pixel(x,y) pada garis melingkar dari lingkaran dengan titik pusat (xc,yc) dan tentukan nilai koordinat:
Flowchart
start
Tentukan radius r dengan titk pusat lingkaran(xc,yc) kemudian diperoleh (x0,y0)=(0,r) Hitung nilai dari parameter P0=5/4r
For x=x0;x<y;x++
yes
Bila Pk< 0
no
Gerakkan setiap posisi pixel(x,y) pada garis melingkar dari lingkaran dengan titik pusat (xc,yc)
Finish