Gambar Rumah Menggunakan GL_LINES









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