Algoritma Pembentukan
Lingkaran
Algoritma Pembentukan
Lingkaran adalah algoritma dimana pembentukan garis lingkaran berdasarkan acuan
titik tengah lingkaran. Lingkaran adalah kumpulan dari titik-titik yang
memiliki jarak dari titik pusat yang sama untuk semua titik. Lingkaran dibuat
dengan menggambarkan seperempat lingkaran, karena bagian lain dapat dibuat sebagai
bagian yang simetris.
Algoritma garis
Bressenhem disebut juga midpoint line algorithm yang adalah algoritma konversi
penambahan nilai integer yang juga dapat diadaptasi untuk menggambar sebuah lingkaran.
Untuk menggambar sebuah lingkaran 360 derajat kita akan membagi menjadi 8
bagian, sehingga kita cukup hanya menggambar 45 derajat.
Langkah-langkah Algoritma Bresenham Pembentukan
Lingkaran :
1. Menetapkan
titik tengah (x_center, y_center)
2. Menetapkan
jari-jari r
3. Menetapkan
nilai x = 0, y = r
4. Menetepkan
nilai parameter keputusan d = 3 – (2 * r)
5. Gambar
titik awal dengan koordinat (x_center+x, y_center+y)
6. x
= x+1
7. Jika
d < 0, maka nilai d baru d = d + (4*x) + 6, jika tidak nilai d baru d = d +
4 * (x – y) + 10 dan y = y-1
8. Gambar
titik berikutnya dengan koordinat (x_center+x, y_center+y)
9. Jika
x < = y ulangi langkah 6 sampai 8
Tugas Individu 29
1. Buat
gambar lingkaran menggunakan titik dengan algoritma Bresenham Pembentukan
Lingkaran.
2. Nilai
parameter :
Kelompok
|
Center
|
R
|
MM3K1
|
(-2,
-2)
|
8
|
Jawab
:
Untuk
membuat algoritma Bresenham Pembentukan Lingkaran maka harus ada dilakukan
langkah-langkah sebagai berikut :
1. Menetapkan
titik tengah (x_center, y_center) : (-2, -2)
2. Menetapkan
jari-jari r : 8
3. Menetapkan
nilai x = 0, y = r : (x=0, y=8)
4. Menetepkan
nilai parameter keputusan d = 3 – (2 * r) : d = 3 – (2*8)
5. Gambar
titik awal dengan koordinat (x_center+x, y_center+y)
6. x
= x+1
7. Jika
d < 0, maka nilai d baru d = d + (4*x) + 6, jika tidak nilai d baru d = d +
4 * (x – y) + 10 dan y = y-1
8. Gambar
titik berikutnya dengan koordinat (x_center+x, y_center+y)
9. Jika
x < = y ulangi langkah 6 sampai 8
Berikut adalah source code lengkapnya
:
#
Kelompok 1 Grafika Komputer MM-3
#
Nama Anggota:
#
-> Tri Mega Anggraeni
#
-> Alma Alfiatul Inayah
#
-> Bunga Permatasari
#
-> Sarah Nur Jihan
#
-> Wiwit Farianto
from
OpenGL.GL import *
from
OpenGL.GLU import *
from
OpenGL.GLUT import *
def
init():
glClearColor(0.0, 0.0, 0.0, 0.0)
gluOrtho2D(-100.0, 100.0, -100.0, 100.0)
glPointSize(5)
def
plot(x, y):
glBegin(GL_POINTS)
glVertex2f(x, y)
glEnd()
def
bresenham_drawing_circle(r):
# titik lokasi lingkaran yang akan dibuat
x_center = -2
y_center = -2
r = 8
x = 0
y = r
# parameter brasenham circle
d = 3 - 2 * r
# membuat titik pada koordinat circle yang
ditentukan
plot(x + x_center, y + y_center)
while y > x:
if d < 0:
x += 1
d += 4 * x + 6
else:
x += 1
y -= 1
d += (4 * (x - y)) + 10
# Tidak perlu mencari semua nilai dari
koordinat koordinat
# cukup mendapatkan nilai dari(x, y)
# setelah sudah nilai (x,y) lalu balik
menjadi (y, x)
# Untuk pixel (x, y)
# Quadrant 1
plot(x + x_center, y + y_center)
# Quadrant 2
plot(x + x_center, -y + y_center)
# Quadrant 3
plot(-x + x_center, -y + y_center)
# Quadrant 4
plot(-x + x_center, y + y_center)
# Untuk pixel (y, x)
# Quadrant 1
plot(y + x_center, x + y_center)
# Quadrant 2
plot(-y + x_center, x + y_center)
# Quadrant 3
plot(-y + x_center, -x + y_center)
# Quadrant 4
plot(y + x_center, -x + y_center)
def
plotpoints():
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(1, 1.0, 1.0)
glBegin(GL_LINES)
glVertex2f(-100, 0)
glVertex2f(100, 0)
glVertex2f(0, -100)
glVertex2f(0, 100)
glEnd()
bresenham_drawing_circle(40)
glFlush()
def
main():
glutInit(sys.argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize(500, 500)
glutInitWindowPosition(100, 100)
glutCreateWindow("Bresenham Cricle
TUGAS 4 Kel 1 MM3")
glutDisplayFunc(plotpoints)
init()
glutMainLoop()
main()
Output :
Tidak ada komentar:
Posting Komentar