Assalamualaikum kawan-kawan, kali ini saya akan beragi informasi membuay sebuah gambar rumah di OpenGL. Perlu diketehui untuk bisa mengerjakan prosesnya kita butuh tools yaitu Phyton dengan OpenGL sebagai librarynya. Dalam proses membuat kita menngunakan syntax glvortex 2f yang nantinya di dalanya ada deklarasi untuk mementukan titik koordinatnya. Berikut saya tampilkan syntax programnya
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
#import OpenGL
def init():
glClearColor(0.0, 0.0, 0.0, 0.0) #tampilan warna dari background/kanvas
gluOrtho2D(-100.0, 100.0, -100.0, 100.0) #koordinat maksimal dari sumbu x dan y
def plotlines():
glClear(GL_COLOR_BUFFER_BIT)
#atap
glColor3f(0.0, 1.0, 1.0) #untuk memberi warna pada garis
glBegin(GL_LINES) #bentuk objek berupa line/garis
glVertex2f(-100.0,20.0)
glVertex2f(-80.0,70.0)
glVertex2f(-80.0,70.0)
glVertex2f(-23.0,70.0)
glVertex2f(-23.0,70.0)
glVertex2f(-60.0,20.0)
glVertex2f(-60.0,20.0)
glVertex2f(-100.0,20.0)
glVertex2f(-23.0,70.0)
glVertex2f(0.0,100.0)
glVertex2f(0.0,100.0)
glVertex2f(23.0,70.0)
glVertex2f(23.0,70.0)
glVertex2f(80.0,70.0)
glVertex2f(80.0,70.0)
glVertex2f(100.0,20.0)
glVertex2f(100.0,20.0)
glVertex2f(60.0,20.0)
glVertex2f(60.0,20.0)
glVertex2f(23.0,70.0)
glVertex2f(60.0,20.0)
glVertex2f(-60.0,20.0)
glVertex2f(-20.0,25.0)
glVertex2f(-20.0,55.0)
glVertex2f(-20.0,55.0)
glVertex2f(20.0,55.0)
glVertex2f(20.0,55.0)
glVertex2f(20.0,25.0)
glVertex2f(20.0,25.0)
glVertex2f(-20.0,25.0)
glVertex2f(-10.0,25.0)
glVertex2f(-10.0,55.0)
glVertex2f(10.0,25.0)
glVertex2f(10.0,55.0)
glVertex2f(-20.0,40.0)
glVertex2f(-10.0,40.0)
glVertex2f(10.0,40.0)
glVertex2f(20.0,40.0)
glVertex2f(-20.0,55.0)
glVertex2f(-25.0,55.0)
glVertex2f(-25.0,55.0)
glVertex2f(-25.0,60.0)
glVertex2f(-25.0,60.0)
glVertex2f(-20.0,60.0)
glVertex2f(-20.0,60.0)
glVertex2f(-20.0,65.0)
glVertex2f(-20.0,65.0)
glVertex2f(20.0,65.0)
glVertex2f(20.0,65.0)
glVertex2f(20.0,60.0)
glVertex2f(20.0,60.0)
glVertex2f(25.0,60.0)
glVertex2f(25.0,60.0)
glVertex2f(25.0,55.0)
glVertex2f(25.0,55.0)
glVertex2f(20.0,55.0)
glVertex2f(-20.0,60.0)
glVertex2f(20.0,60.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk atap menggunakan tipe gl_line diatas
glEnd()
glFlush()
#badan
glColor3f(0.0, 0.0, 1.0)
glBegin(GL_LINES)
glVertex2f(-90.0,20.0)
glVertex2f(-90.0,-65.0)
glVertex2f(-90.0,-65.0)
glVertex2f(-95.0,-65.0)
glVertex2f(-95.0,-65.0)
glVertex2f(-95.0,-80.0)
glVertex2f(-95.0,-80.0)
glVertex2f(95.0,-80.0)
glVertex2f(90.0,20.0)
glVertex2f(90.0,-65.0)
glVertex2f(90.0,-65.0)
glVertex2f(95.0,-65.0)
glVertex2f(95.0,-65.0)
glVertex2f(95.0,-80.0)
glVertex2f(95.0,-65.0)
glVertex2f(-95.0,-65.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk badan rumah menggunakan tipe gl_line diatas
glEnd()
glFlush()
#tangga bawah
glColor3f(0.0, 0.0, 1.0)
glBegin(GL_LINES)
glVertex2f(-40.0,-80.0)
glVertex2f(-40.0,-75.0)
glVertex2f(-40.0,-75.0)
glVertex2f(-35.0,-75.0)
glVertex2f(-35.0,-75.0)
glVertex2f(-35.0,-70.0)
glVertex2f(-35.0,-70.0)
glVertex2f(-30.0,-70.0)
glVertex2f(-30.0,-70.0)
glVertex2f(-30.0,-65.0)
glVertex2f(40.0,-80.0)
glVertex2f(40.0,-75.0)
glVertex2f(40.0,-75.0)
glVertex2f(35.0,-75.0)
glVertex2f(35.0,-75.0)
glVertex2f(35.0,-70.0)
glVertex2f(35.0,-70.0)
glVertex2f(30.0,-70.0)
glVertex2f(30.0,-70.0)
glVertex2f(30.0,-65.0)
glVertex2f(-40.0,-75.0)
glVertex2f(40.0,-75.0)
glVertex2f(-35.0,-70.0)
glVertex2f(35.0,-70.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk tangga bawah menggunakan tipe gl_line diatas
glEnd()
glFlush()
#pintu
glColor3f(0.0, 1.0, 0.0)
glBegin(GL_LINES)
glVertex2f(-20.0,-65.0)
glVertex2f(-20.0,-10.0)
glVertex2f(-20.0,-10.0)
glVertex2f(-25.0,-10.0)
glVertex2f(-25.0,-10.0)
glVertex2f(-25.0,-5.0)
glVertex2f(-25.0,-5.0)
glVertex2f(-20.0,-5.0)
glVertex2f(-20.0,-5.0)
glVertex2f(-20.0,0.0)
glVertex2f(-20.0,0.0)
glVertex2f(20.0,0.0)
glVertex2f(20.0,0.0)
glVertex2f(20.0,-5.0)
glVertex2f(20.0,-5.0)
glVertex2f(25.0,-5.0)
glVertex2f(25.0,-5.0)
glVertex2f(25.0,-10.0)
glVertex2f(25.0,-10.0)
glVertex2f(20.0,-10.0)
glVertex2f(20.0,-10.0)
glVertex2f(20.0,-65.0)
glVertex2f(-20.0,-5.0)
glVertex2f(20.0,-5.0)
glVertex2f(-20.0,-10.0)
glVertex2f(20.0,-10.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk pntu menggunakan tipe gl_line diatas
glEnd()
glFlush()
#jendela kanan
glColor3f(1.0, 0.0, 1.0)
glBegin(GL_LINES)
glVertex2f(40.0,0.0)
glVertex2f(70.0,0.0)
glVertex2f(70.0,0.0)
glVertex2f(70.0,-30.0)
glVertex2f(70.0,-30.0)
glVertex2f(40.0,-30.0)
glVertex2f(40.0,-30.0)
glVertex2f(40.0,0.0)
glVertex2f(50.0,0.0)
glVertex2f(50.0,-30.0)
glVertex2f(60.0,0.0)
glVertex2f(60.0,-30.0)
glVertex2f(40.0,-15.0)
glVertex2f(50.0,-15.0)
glVertex2f(60.0,-15.0)
glVertex2f(70.0,-15.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk jendela kanan menggunakan tipe gl_line diatas
glEnd()
glFlush()
#jendela kiri
glColor3f(1.0, 0.0, 1.0)
glBegin(GL_LINES)
glVertex2f(-40.0,0.0)
glVertex2f(-70.0,0.0)
glVertex2f(-70.0,0.0)
glVertex2f(-70.0,-30.0)
glVertex2f(-70.0,-30.0)
glVertex2f(-40.0,-30.0)
glVertex2f(-40.0,-30.0)
glVertex2f(-40.0,0.0)
glVertex2f(-50.0,0.0)
glVertex2f(-50.0,-30.0)
glVertex2f(-60.0,0.0)
glVertex2f(-60.0,-30.0)
glVertex2f(-40.0,-15.0)
glVertex2f(-50.0,-15.0)
glVertex2f(-60.0,-15.0)
glVertex2f(-70.0,-15.0)
#glvortex ini berfungsi untuk memberi titik koordinat yang nantinya aksn disambung menjadi garis yang membentuk jendela kiri menggunakan tipe gl_line diatas
glEnd()
glFlush()
def main():
glutInit(sys.argv) #inisiasi window
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB) #inisiasi window
glutInitWindowSize(500,500) #ukuran window
glutInitWindowPosition(100,100) #menetapkan posisi dari window
glutCreateWindow("Plot Lines") #memberi nama projek
glutDisplayFunc(plotlines) #mengerjakan semua fungsi
init()
glutMainLoop()
main()
berikut adalah output gambarnya
Pada syntax diatas sudah ada beberapa penjelasan dari setiap langkah, hanya saja penjelasan dari penetapan koordinat tidak saya jelaskan. Teman-teman bisa pelajari sendiri dengan membuat coretan di kertas untuk membantu dalam membayaangkan setiap koordinat.
Demikian adalah sedikit ilmu yang saya share ke teman-teman. Mohon maaf jika ada kesalahan dalam menyampaikan. Terima kasih...... Wassalamualaikum wr.wb.