Anda di halaman 1dari 12

Kumpulan Materi Kuliah

Algoritma Pembentuk
Lingkaran

Komputer Grafik
Algoritma Pembentuk Lingkaran
Secara umum prosedur pembentuk lingkaran dibuat
dengan rumus dasar
x2 + y2 = r2
Terdapat beberapa cara untuk membentuk suatu lingkaran
namun tidak efisien. Lingkaran dapat dibuat dengan
menggambarkan seperempat lingkaran karena bagian lain
dapat dibuat sebagai bagian yang simetris.
⦿ Algoritma Simetris delapan titik
⦿ Algoritma Lingkaran Midpoint
Algoritma Simetris delapan titik
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
450 dalam menentukan lingkaran selengkapnya. Dengan
titik pusat lingkaran tertentu, delapan titik simetris dapat
ditampilkan
8 Titik Simetris Lingkaran
Contoh list program :
pembentuk lingkaran 8 titik simetris
Void 8_titik_Simetris(int x, int y, int value)
{ SetPixel(x,y,value);
SetPixel(-x,y,value);
SetPixel(x,-y,value);
SetPixel(-x,-y,value);
SetPixel(y,x, value);
SetPixel(-y,x,value);
SetPixel(y,-x,value);
SetPixel(-y,-x,value);
}
Algoritma Lingkaran 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 titk pusat lingkaran(xc,yc) kemudian diperoleh
(x0,y0) = (0,r)
2. Hitung nilai dari parameter
P0 = 5/4 - r
3. Tentukan nilai awal k=0, untuk setiap posisi xk berlaku sebagai berikut:
Bila Pk < 0, maka titik selanjutnya adalah (xk+1 ,yk )
dan Parameter selanjutnya Pk+1 =Pk + 2xk+1 + 1

Bila tidak Pk > 0, maka selanjutnya adalah (xk+1 ,yk-1 )


dan Parameter selanjutnya Pk+1=Pk + 2xk+1 + 1 - 2yk+1
Dimana 2xk+1 = 2xk + 2 dan 2yk+1 = 2yk - 2
4. Tentukan titik simetris pada ketujuh oktan yang lain

4. Gerakkan setiap posisi pixel(x,y) pada garis


melingkar dari lingkaran dengan titik pusat (xc,yc)
dan tentukan nilai koordinat:
Xk+1 = xk + 1
Yk+1 = yk , atau Yk+1 = yk -1

4. Ulangi langkah ke3 sampai 5, sehingga


X >= y
Contoh : Algoritma Midpoint
Bentuklah suatu lingkaran dengan titik
pusat (0,0) dan radius(r) 10, perhitungan
berdasarkan oktan 450 dari kuadran
pertama di mana x=0 sampai dengan x=y.
Nilai parameter dapat ditentukan dengan
P0 =1- r =1 – 10 = - 9
Jawab:
Untuk k = 0 diperoleh P0 = -9 Untuk k = 3 diperoleh P3 = 6
Pk > 0, maka selanjutnya adalah (x3+1 ,y3-1 )
⦿ P0 < 0 maka titik selanjutnya adalah
(x3+1 ,y3 ) = (3+1 , 9) = (4, 9) = (x4 ,y4 )
(x0+1 ,y0 ) = (0+1 , 10) = (1, 10) = (x1 ,y1 )
dan Parameter selanjutnya
dan Parameter selanjutnya
P4=P3 + 2x4 + 1 - 2y4
P1 = P0 + 2x1 + 1 = -9 + 2(1) +1 = -6 Dimana 2x3+1 = 2xk + 2 dan 2y3+1 = 2yk – 2
⦿ P1 < 0 maka titik selanjutnya adalah o .
(x1+1 ,y1 ) = (1+1 , 10) = (2, 10) = (x2 ,y2 ) o .
dan Parameter selanjutnya o .
P2 = P1 + 2x2 + 1 = -6 + 2(2) +1 = - 1 o Seterusnya hingga k = 7
Untuk k = 7 diperoleh P7 = 6
⦿ P2 < 0 maka titik selanjutnya adalah
P7 > 0, maka selanjutnya adalah (x6+1 ,y6 -1 )
(x2+1 ,y2 ) = (2+1 , 10) = (3, 10) = (x3 ,y3 )
(x6+1 ,y6 -1 ) = (6+1 , 8 - 1) = (7, 7) = (x7 ,y7 )
dan Parameter selanjutnya
P3 = P2 + 2x3 + 1 = - 1 + 2(3) +1 = 6
Koordinat titk awal adalah (x,r)=(0,10).
K Pk (Xk+1,Yk+1) 2Xk+1 2Yk+1
0 -9 (0,10) 0 20
1 -6 (1,10) 2 20
2 -1 (2,10) 4 20
3 6 (3,10) 6 20
4 -3 (4,9) 8 18
5 8 (5,9) 10 18
6 5 (6,8) 12 16
7 6 (7,7) 14 14

Anda mungkin juga menyukai