Professional Documents
Culture Documents
61
BAB-4
LINGKARAN dan ELIPS
Algoritma Bresenham dapat diterapkan untuk menggamba lingkaran. Dalam
menggambar lingkaran cukup mencari nilai dari oktan pertama saja.
By: I Gusti Ngurah Suryantara, S.Kom., M.Kom
4.1. 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.
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.
Gambar 4.1. 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(-X,-Y, Value);
SetPixel(Y,X, Value);
SetPixel(-Y,X, Value);
SetPixel(Y,-X, Value);
SetPixel(-Y,-X, Value);
}
1. Masukkan jari-jari dan pusat lingkaran (x
c
,y
c
)
dan dapatkan titik permulaan pada keliling yang
berpusat pada titik awal sebagai:
(x
0
, y
0
) = (0,r)
2. Hitung nilai awal parameter keputusan sebagai
P
0
= 5/4 - r
3. Pada masing-masing posisi x
k
, mulai dari k=0,
lakukan tes berikut:
Jika pk <0, titik berikut adalah (x
k+1
,y
k
) dan
p
k+1
= p
k
+2x
k+1
+1
Bila tidak, titik selanjutnya adalah (x
k+1
,y
k
-
1), dan P
k+1
= P
k
+ 2x
k+1
+ 1-2y
k+1
dimana
2
xk+1
= 2
xk+2
dan 2
yk+1
= 2
yk
2
4. Tentukan titik simetri untuk 7 oktan yang lain.
5. Pindahkan masing-masing posisi piksel (x,y) ke
bagian lingkaran yang berpusat ke (x
c
,y
c
) 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 45