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

Membuat Obyek Rumah

Tugas Grafika Komputer kali ini adalah membuat gambar rumah menggunakan OpenGL di python. Gambarnya seperti berikut: Disini saya akan menjelaskan sedikit tentang apasih Grafika Komputer itu. Grafika Komputer adalah bagian ilmu komputer yang berkaita dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D, pemrosesan citra(image processing), dan pengenalan pola dengan istilah visualisasi data. OpenGL(Open Graphics Library) adalah spesifikasi standar yang mendefinisikan sebuah lintas-bahasa, lintas platform API untuk mengembangkan aplikasi yang menghasilkan grafis komputer 2D maupun 3D.Dalam meletakkan suatu objek pada layer diperlukan pengetahuan tentang sistem koordinat. Software yang diperlukan: 1. IDLE Python 3.8.2(IDLE) Download Library Phyton: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl Library Pyhton Yang Digunakan : 1. ...

Membuat Objek Spiral Berbentuk Love Menggunakan OpenGL

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. 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 : from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * import numpy as np def init():     glClearColor(0.0, 0.0, 0.0, 0.0)     gluOrtho2D(-2.0, 2.0, -2.0, 2.0) def plotpoints():     glClear(GL_COLOR_BUFFER_BIT)     glColor3f(1, 1.0, 1.0)     glPointSize(13...