Skip to main content

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 )
        glRotatef( piramida_b, 0.0, 1.0, 0.0 )
     

        glBegin(GL_QUADS)
        # Bagian alas segitiga atau piramida (y = -1.0)
        glColor3f(1.0, 1.0, 0.0);  #yellow 
        glVertex3f( 1.0, -1.0,  1.0);
        glColor3f(1.0, 1.0, 0.0);  #yellow
        glVertex3f(-1.0, -1.0,  1.0);
        glColor3f(1.0, 1.0, 0.0);  #yellow
        glVertex3f(-1.0, -1.0, -1.0);
        glColor3f(1.0, 1.0, 0.0);  #yellow
        glVertex3f( 1.0, -1.0, -1.0);
        glEnd();
     
        glBegin(GL_TRIANGLES)
        # Bagian Depan Piramida atau front face (z = 1.0)
        glColor3f(1.0, 1.0, 0.5);     #lemon
        glVertex3f( 1.0, -1.0, 1.0);
        glColor3f(1.0, 1.0, 0.5);     #lemon
        glVertex3f( -1.0, -1.0, 1.0);
        glColor3f(1.0, 1.0, 0.5);     #lemon
        glVertex3f(0, 1.0, 0);

        # Bagian kiri atau Left face  (x = -1.0)
        glColor3f(0.0, 0.5, 1.0);   #biru sayan blue
        glVertex3f(-1.0, -1.0,  1.0);
        glColor3f(0.0, 0.5, 1.0);   #biru sayan blue
        glVertex3f(-1.0, -1.0, -1.0);
        glColor3f(0.0, 0.5, 1.0);   #biru sayan blue
        glVertex3f(0, 1.0, 0);

        # Bagian Kanan atau Right face (x = 1.0)
        glColor3f(1.0, 0.0, 0.0);   #red
        glVertex3f( 1.0, -1.0, 1.0);
        glColor3f(1.0, 0.0, 0.0);   #red
        glVertex3f( 1.0, -1.0, -1.0);
        glColor3f(1.0, 0.0, 0.0);   #red
        glVertex3f(0, 1.0, 0);

        # Bagian Belakang Back face (z = -1.0)
        glColor3f(0.0, 1.0, 0.0);   #green
        glVertex3f( -1.0, -1.0,  -1.0);
        glColor3f(0.0, 1.0, 0.0);   #green
        glVertex3f( 1.0, -1.0,  -1.0);
        glColor3f(0.0, 1.0, 0.0);   #green
        glVertex3f(0, 1.0, 0);

        glEnd();
        glutSwapBuffers()
        glFlush()
4. Membuat fungsi putar yang berguna untuk merotasi piramid
    def rotate(key,x,y):
        global piramida_a, piramida_b

        if key == GLUT_KEY_RIGHT:
            piramida_a += 15
        elif key == GLUT_KEY_LEFT:
            piramida_a -= 15
        elif key == GLUT_KEY_UP:
            piramida_b += 15
        elif key == GLUT_KEY_DOWN:
            piramida_b -= 15
5. Membuat fungsi update
    def update(value):
        glutPostRedisplay()
        glutTimerFunc(15,update,0)
6. Membuat fungsi reshape agar objek berubah bentuk
    def reshape(width, height):
       aspect = width / height
       glViewport(0, 0, width, height)
       glMatrixMode(GL_PROJECTION)
       glLoadIdentity()         
       gluPerspective(45.0, aspect, 0.1, 100.0)
7. Membuat fungsi main untuk memanggil semua fungsi
    def main():
        glutInit(sys.argv)
        glutInitDisplayMode(GLUT_RGBA|GLUT_DOUBLE)
        glutInitWindowSize(500,500)
        glutInitWindowPosition(100,100)
        glutCreateWindow("Piramida 3D")
        glutSpecialFunc(rotate)
        glutTimerFunc(50, update, 0)
        glutDisplayFunc(myDisplay)
        glutReshapeFunc(reshape)
     
        init()
        glutMainLoop()

    main()
OUTPUT 







Comments

Popular posts from this blog

Event Handling Keyboard & Mouse dengan PyOpenGl

Software yang diperlukan : 1. IDLE Python 3.7 (IDLE) Dibawah ini Import Library Pada Python 3.7 : from OpenGL.GL import* from OpenGL.GLU import* from OpenGl.GLUT import* Link Download Library Python: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl Pilih Library Python Yang Di bawah ini : 1. PyOpenGL_ accelerate-3.1.5-cp38-cp38-win32.whl 2. PyOpenGL-3.1.5-cp38-cp38-win32.whl (Jika Python yang digunakan adalah python 32 bit, maka download library yang sesuai dengan bit pythob pada perangkat masing-masing. Begitu juga sebaliknya jika Python 64 bit).                        OpenGL menyediakan sebuah fungsi yang didefinisikan oleh user dan dipanggil pada saat ada event yang bersesuaian. OpenGL dapat memonitor peralatan input ketika ada sesuatu yang terjadi, misalkan saat key press dan mouse down.                  Fungsi Callback GLUT yaitu fungsi yang be...

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...