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

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

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 * Link Download Library Python : https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl Pilih Library Pyhton Yang Di bawah ini : 1. PyOpe...