Anda di halaman 1dari 3

Fahmi Candra Permana 140110080053 Implementasi Algoritma Bresenham untuk membuat Lingkaran

Algoritma Bresenham

2011

Algoritma Bresenham adalah algoritma yang menentukan titik-titik dalam raster ndimensi yang harus diplot untuk membentuk pendekatan dekat dengan garis lurus antara dua titik yang diberikan. dalam Algoritma Bresenham menggunakan aritmatika integer yang tidak memerlukan perkalian dan pembagian dalam proses perhitungannya didalam seluruh implementasi,yang mana aritmatika integer ini memiliki kecepatan perhitungan yang lebih tinggi daripada aritmatika floating poin. LINGKARAN Algoritma bressenham dapat diterapkan untuk menggambar sebuah lingkaran. Untuk menggambar lingkaran hanya diperlukan menggambar titik-titik pada oktan pertama saja sedangkan titik-titik pada kuadran lain dapat diperolah dengan mencerminkan titik-titik pada kuadran pertama. Langkah langkah untuk membentuk lingkaran algoritma Bresenham: 1. Tentukan radius r dengan titk pusat lingkaran (xc,yc) kemudian diperoleh: (x0,y0)=(0,r) 2. Hitung nilai dari parameter: P0=5/4r 3. Tentukan nilai awal k=0, untuk setiap posisi xk berlaku sebagai berikut: Bila Pk< 0, maka titik selanjutnya adalah (xk+1, yk) dan Pk+1 = Pk + 2xk+1 + 1 Bila tidak, maka selanjutnya adalah(xk+1,yk-1), dan 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 5. Gerakkan setiap posisi pixel (x,y) pada garis melingkar dari lingkaran dengan titik pusat (xc,yc) dan tentukan nilai koordinat: x = x + xcy = y + yc 6. Ulangi langkah ke-3 sampai 5, sehingga x >= y

Fahmi Candra Permana 140110080053

2011

Potongan Source code Implementa Alogoritma Lingkaran Bresenham dengan bahasa pemogramman C Void CircleMidPoint(int Xcenter, int Ycenter, int Radius) { X = 0; Y = Radius; P = 1-Radius; While (X<Y) { X = X+1; If (P < 0 ) P = P+ 2*X+1; Else { Y = Y-1; P = P + 2*(X-Y)+1; } } CirclePlotPoints();} Contoh : Diketahui titik pusat lingkaran (0,0) dan radius 8, perhitungan berdasarkan oktan dari kuadran pertama dimana x = 0 sampai y = 0. Nilai parameter dapat ditentukan dengan. P0 = 1 r = 1 8 = -7 Koordinat titik awal adalah (x,r) = (0,8) Jawab: x0 = 0 = 1 + 2 * (3 7) + 1 y0 = r = 8 = -6 K=0 Loop ke-4 P0 = 1 r = 1 8 = -7 x4 = x3 +1 = 3 + 1 = 4 Loop ke-1 y4 tetap = 7 x1 = x0 +1 = 0 +1 = 1 K=4 y1 tetap = 8 P4 = P3 + 2 * x4 + 1 K=1 = -6 + 2 * 4 + 1 P1 = P0 + 2 * x1 + 1 =3 = -7 + 2 * 1 + 1 Loop ke-5 = -4 x5 = x4 + 1 = 4 + 1 = 5 Loop ke-2 y5 = y4 1 = 7 1 = 6 x2 = x1 +1 = 1 +1 = 2 K=5 y2 tetap = 8 P5 = P4 + 2 * (x5 y5) + 1 K=2 = 3 + 2 *(5 - 6) + 1 P2 = P1 + 2 * X2 + 1 =2 = -4 + 2 * 2 + 1 Loop ke-6 =1 x6 = x5 + 1 = 5 + 1 = 6 Loop ke-3 y6 = y5 1 = 6 2 = 5 x3 = x2 + 1 = 2 + 1 = 3 K=6 y3 = y2 1 = 8 1 = 7 P6 = P5 + 2 * (x6 y6) + 1 K=3 = 2 + 2 *(6 - 5) + 1 P3 = P2 + 2 * (x3 y3) +1 =5

Fahmi Candra Permana 140110080053


Loop berhenti karena x > y K Pk (Xk+1, Yk+1)oktan -1 (0,8) 0 1 2 3 4 5 -7 -4 1 -6 3 2 (1,8) (2,8) (3,7) (4,7) (5,6) (6,5)

2011

Anda mungkin juga menyukai