Nama : Abd Mukmin
NIM : 1205045171
Kelas : Pilkom B
Tugas : Komputer Grafik
ALGORITMA LINGKARAN BRESENHAM (Mid Point)
Dari gambar dapat disimpulkan bahwa jika Algoritma Bresenham bekerja mulai dari (x=0, y=R)
searah jarum jam, maka y merupakan fungsi menurun dari x, demikian juga sebaliknya, jika
dimulai dari (y=0, x=R) maka x akan merupakan fungsi menurun dari y.
Lingkaran dengan 8 titik simetris
SIMETRIS 8 TITIK
Void CirclePoints(Int X, Int Y, Int 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);
}
1. Masukkan jari-jari dan pusat lingkaran (xc,yc) dan dapatkan titik permulaan pada keliling
yang berpusat pada titik awal sebagai: (x0 , y0) = (0,r)
2. Hitung nilai awal parameter keputusan sebagai P0 = 5/4 – r
3. Pada masing-masing posisi xk, mulai dari k=0, lakukan tes berikut:
a. Jika pk <0, titik berikut adalah (xk+1,yk) dan pk+1 = pk+2xk+1+1
b. Bila tidak, titik 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 simetri untuk 7 oktan yang lain.
5. Pindahkan masing-masing posisi piksel (x,y) ke bagian lingkaran yang berpusat ke (xc,yc)
dan lukis nilai koordinat.
6. Ulangi langkah 3 sampai 5 hingga x>= y.
MIDPOINT
Algoritma midpoint disebut juga Algoritma Lingkaran Bresenham. Algoritma ini hanya
memperhatikan bagian 45o dari suatu lingkaran.
Contoh Lingkaran :
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
Jawab:
X = 0 Y = r = 8
---
K e - 0
P = 1 – r
= 1 – 8 = -7
Loop ke-1
x = x +1 y tetap = 8
= 0 +1 = 1
---
Ke - 1
P = P + 2 * X + 1
= -7 + 2 * 1 + 1
= -4
Loop ke-2
x = x +1 y tetap _ 8
= 1 +1 = 2
---
Ke - 2
P = P + 2 * X + 1
= -4 + 2 * 2 + 1
= 1
Loop ke-3
x = x +1 y = y-1
= 2 +1 = 3 = 8-1 = 7
Ke - 3
P = P + 2 * (X –Y) +1
= 1 + 2 * (3 – 7) + 1
= -6
Loop ke-4
x = x +1 y tetap = 7
= 3 +1 = 4
---
Ke - 4
P = P + 2 * X + 1
= -6 + 2 * 4 + 1
= 3
Loop ke-5
x = x +1 y = y-1
= 4 +1 = 5 = 7-1 = 6
---
Ke - 5
P = P + 2 * (X - Y) + 1
= 3 + 2 *(5 - 6) + 1
= 2
Loop ke-6
x = x +1 y = y-1
= 5 +1 = 6 = 6-2 = 5
---
Ke - 6
Tabel hasil proses
- Pk (xk+1,yk+1) oktan 1
- - (0.8)
0 -7 (1.8)
1 -4 (2.8)
2 1 (3.7)
3 -6 (4.7)
4 3 (5.6)