Skip to main content

Membuat Lingkaran Dengan Algoritma Bresenham



                      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. Penambahan x dapat dilakukan dari 0 ke r sebesar unit step, yaitu menambahkan ± y untuk setiap step. Pada dasarnya, mirip dengan penggambaran garis, algoritma penggambaran lingkaran pun berusaha mencari solusi optimal sedemikian rupa sehingga lingkaran yang dibentuk adalah sesempurna mungkin.


Software yang diperlukan :
1. IDLE Pyhton 3.7  (IDLE)

Dibawah ini Import Library Pada Python 3.7  :
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *


Pilih Library Pyhton Yang Di bawah ini :
1. PyOpenGL_accelerate-3.1.5-cp38-cp38-win32.whl
2. PyOpenGL-3.1.5-cp38-cp38-win32.whl

(Jika Pyhton yang digunakan adalah pyhton 32 bit, maka Download library yang sesuai dengan bit python pada perangkat masing- masing. Begitu juga sebaliknya jika Pyhton 64 bit). 

Berikut adalah Full Source Code nya :

# Kelompok 2 Grafika Komputer MM-3


from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *


def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    gluOrtho2D(-50.0, 50.0, -50.0, 50.0)
    glPointSize(5)


def plot(x, y):
    glBegin(GL_POINTS)
    glVertex2f(x, y)
    glEnd()


def bresenham_drawing_circle(r):

    # contoh soal jika nilai center circle (3,3) dan r = 9
    x_center = 3
    y_center = 3

    r = 9
    x = 0
    y = r

    # parameter keputusan bresenham
    d = 3 - 2 * r

    # membuat titik pada koordinat 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 

        # Jika x <= y sudah terpenuhi, maka perulangan di hentikan.
        # jika nilai (x,y)sudah didapatkan, lalu membalikan nilai (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(0.0, 0.5, 0.5)

    glBegin(GL_LINES)

    glVertex2f(-50, 0)
    glVertex2f(50, 0)

    glVertex2f(0, -50)
    glVertex2f(0, 50)

    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 2 MM3")
    glutDisplayFunc(plotpoints)

    init()
    glutMainLoop()

main()

HASIL PROGRAM JIKA DIRUN :





Comments

Popular posts from this blog

Membentuk bentuk Piramida 3D menggunakan PyOpenGL

Pada postingan ini saya akan membuat bentuk piramida 3D menggunakan PyOpenGL Source Code: 1. Buat fungsi import modul from OpenGL.GL import* from OpenGL.GLU import:* from OpenGL.GLUT import* 2. Membuat variabel untuk mengatur sisi piramida_a dan sisi piramida_b. Kemudian mengatur latar belakang warna dan membuat ordo 2D piramida_a = 0 piramida_b = 0       def init():     glClearColor(0.,0.,0.,0.)     glEnable(GL_DEPTH_TEST)     gluOrtho2D(-20.0, 20.0, -20.0, 20.0) 3. Membuat fungsi myDisplay untuk membuat beberapa bagian piramid yaitu bagian bawah, bagian depan, bagian kiri, bagian kanan dan bagian belakang def myDisplay():     global piramida_a, piramida_b     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)     glMatrixMode(GL_MODELVIEW)     glLoadIdentity()     glTranslatef(0, 0, -5.0);     glRotatef( piramida_a, 1.0, 0.0, 0.0 )   ...

Membuat bentuk Matahari dengan PyOpenGL

Software yang digunakan: IDLE Pyhton 3.8.2 (IDLE) SOURCE CODE : from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * def init():     glClearColor(0.0, 0.0, 0.0, 0.0)     gluOrtho2D(-500.0, 500.0, -500.0, 500.0) # untuk membuat matahari kita akan gunakan bentuk segitiga yang di rotaasi sebanyak 18 kali dengan jarak sudut tiap rotasi sebanyak 20 derajat. def plotpoints():     glColor3f(1.,1.0,0.)     for i in range(0,19):         s = 20         glRotatef(s, 0.0, 0.0,1.0)         segitiga()            glFlush() # fungsi untuk membuat bentuk segitiga def segitiga():     glBegin(GL_TRIANGLES)     glVertex2f(-50.0,0.0)     glVertex2f(50.0,0.0)     glVertex2f(0.0,200.0)     glEnd() NOTE: Jika ingin bentuk segitiga bergaris gunakan GL_LINE_LOOP Jika ingin bentuk segitiga yang ada isi...