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