Selasa, 10 Maret 2020

GAMBAR RUMAH 2D MENGGUNAKAN GL_LINES



            Pada kesempatan kali ini, saya membuat sebuah gambar 2D berbentuk rumah dengan menggunakan gl_lines dalam bahasa Python. Pertama-tama kita harus menginstall OpenGL terlebih dahulu. Nah ap aitu OpenGL? OpenGL atau Open Graphics Library merupakan spesifikasi standar yang mendefinisikan sebuah lintas-bahasa, lintas platform API untuk mengembangkan aplikasi yang menghasilkan grafis komputer 2D maupun3D.
·         Caranya adalah buka cmd, lalu ketikkan perintah “apt-get install python-opengl”.
·         Apabila OpenGL sudah terinstall, cek library OpenGL. Caranya yaitu  ketikkan perintah “import opengl”
·         Jika sukses lalu lanjutkan untuk membuat program agar hasilnya bisa menyerupai bentuk rumah 2D. Berikut adalah programnya :
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    gluOrtho2D(-10.0, 100.0, -100.0, 10.0)

def ploting():
    glClear(GL_COLOR_BUFFER_BIT)
    # Cerobong Atas
    glColor3f(0.5, 0.5, 0.5)
    glBegin(GL_POLYGON)
    glVertex2f(15.5, -5.0)
    glVertex2f(24.0, -5.0)
    glVertex2f(24.0, -3.5)
    glVertex2f(9.0, -3.5)
    glVertex2f(9.0, -5.0)
    glEnd()
    glFlush()
    # Badan Cerobong
    glColor3f(1.0, 0.0, 0.0)
    glBegin(GL_POLYGON)
    glVertex2f(12.5, -20.0)
    glVertex2f(12.5, -5.0)
    glVertex2f(20.0, -5.0)
    glVertex2f(20.0, -13.0)
    glEnd()
    glFlush()
    # Atap Rumah
    glColor3f(1.0, 0.5, 0.6)
    glBegin(GL_LINE_STRIP)
    glVertex2f(5.0, -30.0)
    glVertex2f(2.0, -30.0)
    glVertex2f(40.0, 6.0)
    glVertex2f(78.0, -30.0)
    glVertex2f(75.0,-30.0)
    glEnd()
    glFlush()
    # Bangunan
    glColor3f(0.1, 0.1, 0.1)
    glBegin(GL_POLYGON)
    glVertex2f(5.0, -30.0)
    glVertex2f(40.0, 2.0)
    glVertex2f(75.0, -30.0)
    glVertex2f(75.0, -70.0)
    glVertex2f(5.0,-70.0)
    glVertex2f(5.0,-30.0)
    glEnd()
    glFlush()
    # Jendela Kiri
    glColor3f(1.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(15.0, -47.0)
    glVertex2f(25.0, -47.0)
    glVertex2f(25.0, -57.0)
    glVertex2f(15.0, -57.0)
    glVertex2f(15.0,-47.0)
    glEnd()
    glFlush()
    # Jendela Kiri segi
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(20.0, -47.0)
    glVertex2f(20.0, -50.0)
    glVertex2f(25.0, -50.0)
    glEnd()
    glFlush()
    # Jendela Kiri bawah
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(20.0, -50.0)
    glVertex2f(20.0, -57.0)
    glEnd()
    glFlush()
    # Jendela Atas
    glColor3f(1.0, 0.25, 0.6)
    glBegin(GL_LINE_STRIP)
    glVertex2f(35.0, -20.0)
    glVertex2f(45.0, -20.0)
    glVertex2f(45.0, -30.0)
    glVertex2f(35.0, -30.0)
    glVertex2f(35.0,-20.0)
    glEnd()
    glFlush()
    # Jendela Atas segi
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(40.0, -20.0)
    glVertex2f(40.0, -23.0)
    glVertex2f(45.0, -23.0)
    glEnd()
    glFlush()
    # Jendela Atas bawah
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(40.0, -23.0)
    glVertex2f(40.0, -30.0)
    glEnd()
    glFlush()
    # Jendela Kanan
    glColor3f(1.0, 0.0, 0.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(55.0, -47.0)
    glVertex2f(65.0, -47.0)
    glVertex2f(65.0, -57.0)
    glVertex2f(55.0, -57.0)
    glVertex2f(55.0,-47.0)
    glEnd()
    glFlush()
    # Jendela Kanan segi
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(60.0, -47.0)
    glVertex2f(60.0, -50.0)
    glVertex2f(65.0, -50.0)
    glEnd()
    glFlush()
    # Jendela Kanan bawah
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(60.0, -50.0)
    glVertex2f(60.0, -57.0)
    glEnd()
    glFlush()
    # Bagian Atas Pintu 1
    glColor3f(1.0, 0.5, 0.25)
    glBegin(GL_POLYGON)
    glVertex2f(36.0, -44.0)
    glVertex2f(44.0, -44.0)
    glVertex2f(44.0, -46.0)
    glVertex2f(36.0, -46.0)
    glVertex2f(36.0,-44.0)
    glEnd()
    glFlush()
    # Bagian Atas Pintu 2
    glColor3f(1.0, 0.5, 0.9)
    glBegin(GL_POLYGON)
    glVertex2f(35.0, -46.0)
    glVertex2f(45.0, -46.0)
    glVertex2f(45.0, -48.0)
    glVertex2f(35.0, -48.0)
    glVertex2f(35.0,-46.0)
    glEnd()
    glFlush()
    # Bagian Atas Pintu 3
    glColor3f(1.0, 0.5, 0.5)
    glBegin(GL_POLYGON)
    glVertex2f(33.0, -48.0)
    glVertex2f(47.0, -48.0)
    glVertex2f(47.0, -50.0)
    glVertex2f(33.0, -50.0)
    glVertex2f(33.0,-48.0)
    glEnd()
    glFlush()
    # Pintu
    glColor3f(1.0, 0.0, 0.0)
    glBegin(GL_POLYGON)
    glVertex2f(35.0, -50.0)
    glVertex2f(45.0, -50.0)
    glVertex2f(45.0, -70.0)
    glVertex2f(35.0, -70.0)
    glVertex2f(35.0,-50.0)
    glEnd()
    glFlush()
    # Pondasi Bawah
    glColor3f(0.5, 0.5, 0.5)
    glBegin(GL_POLYGON)
    glVertex2f(2.0, -70.0)
    glVertex2f(78.0, -70.0)
    glVertex2f(78.0, -73.0)
    glVertex2f(2.0, -73.0)
    glVertex2f(2.0,-70.0)
    glEnd()
    glFlush()
    # Tangga Pertama
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_POLYGON)
    glVertex2f(34.0, -69.0)
    glVertex2f(46.0, -69.0)
    glVertex2f(46.0, -70.5)
    glVertex2f(34.0, -70.5)
    glVertex2f(34.0,-69.0)
    glEnd()
    glFlush()
    # Tangga kedua
    glColor3f(1.0, 0.0, 0.0)
    glBegin(GL_POLYGON)
    glVertex2f(33.0, -70.5)
    glVertex2f(47.0, -70.5)
    glVertex2f(47.0, -72.0)
    glVertex2f(33.0, -72.0)
    glVertex2f(33.0,-70.5)
    glEnd()
    glFlush()
    # Tangga ketiga
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_POLYGON)
    glVertex2f(32.0, -72)
    glVertex2f(48.0, -72)
    glVertex2f(48.0, -73.5)
    glVertex2f(32.0, -73.5)
    glVertex2f(32.0,-72)
    glEnd()
    glFlush()
    # Tangga C 1
    glColor3f(1.0, 1.0, 1.0)
    glBegin(GL_LINE_STRIP)
    glVertex2f(32.0, -72)
    glVertex2f(48.0, -72)
    glVertex2f(48.0, -73.5)
    glVertex2f(32.0, -73.5)
    glVertex2f(32.0,-72)
    glEnd()
    glFlush()

def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB)
    glutInitWindowSize(800,800)
    glutInitWindowPosition(100,100)
    glutCreateWindow("Grafkom kelompok 1")
    glutDisplayFunc(ploting)
   

    init()
    glutMainLoop()
main()
Dalam program tersebut ada glColor, glVertex. glColor adalah warna dari bagian yang sedang kita buat. Sedangkan glVertex adalah titik-titik yang dihasilkan oleh sumbu (x,y) sehingga jika digabungkan akan menghasilkan garis dan membetuk suatu bidang.
Dalam program ini ada banyak bagian yang kita buat yaitu : Cerobong Atas, Badan Cerobong, Atap Rumah, Bangunan, Jendela Kiri, Jendela Kiri segi, Jendela Kiri bawah, Jendela Atas,  Jendela Atas segi, Jendela Atas bawah, Jendela Kanan, Jendela Kanan segi, Jendela Kanan bawah, Bagian Atas Pintu 1, Bagian Atas Pintu 2, Bagian Atas Pintu 3, Pintu, Pondasi Bawah, Tangga Pertama, Tangga Kedua, Tangga Ketiga, Tangga C 1.
·         Setelah program selesai maka langsung jalankan. Dan apabila sukses maka akan muncul output sebagai berikut :

Tidak ada komentar:

Posting Komentar