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/menggambar 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()
Penjelasan
Dari Source Code diatas diberi nilai yang berbeda beda, sehingga menghasilkan warna yang berbeda.
Maka akan menghasilkan object rumah dengan warna yang berbeda-beda pada setiap garisnya. Pendefinisian dilakukan dengan memberikan sintaks warna (glcolor3f) terlebih dahulu sebelum sintaks titik (glvertex2f).
Komentar
Posting Komentar