Skip to main content

Membuat Obyek Rumah

Tugas Grafika Komputer kali ini adalah membuat gambar rumah menggunakan OpenGL di python. Gambarnya seperti berikut:


Disini saya akan menjelaskan sedikit tentang apasih Grafika Komputer itu.
Grafika Komputer adalah bagian ilmu komputer yang berkaita dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi grafika komputer 3D, pemrosesan citra(image processing), dan pengenalan pola dengan istilah visualisasi data.
OpenGL(Open Graphics Library) adalah spesifikasi standar yang mendefinisikan sebuah lintas-bahasa, lintas platform API untuk mengembangkan aplikasi yang menghasilkan grafis komputer 2D maupun 3D.Dalam meletakkan suatu objek pada layer diperlukan pengetahuan tentang sistem koordinat.
Software yang diperlukan:
1. IDLE Python 3.8.2(IDLE)
Download Library Phyton:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl
Library Pyhton Yang Digunakan :

1. PyOpenGL_accelerate-3.1.5-cp38-cp38-win32.whl

2. PyOpenGL-3.1.5-cp38-cp38-win32.whl

(Jika Pyhton yang digunakan adalah pyhton 32 bit, maka Download library yang sesuai dengan bit python pada perangkat masing- masing. Begitu juga sebaliknya jika Pyhton 64 bit).
Fungsi-fungsi source coude menggunakan OpenGL:
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
->fungsi diatas digunakan untuk mengaktifkan fungsi fungsi grafik yang telah disediakan oleh OpenGL
glClear(GL_COLOR_BUFFER_BIT) -> digunakan untuk membersihkan layer latar belakang
glColor3f(1, 1, 1) -> digunakan untuk menentukan warna garis/titik
glutInitWindowSize(500x500) -> digunakan untuk mengatur ukuran kanvas
glutCrateWindow("Rumah") -> digunakan untuk memberi nama windows jika program di RUN
glutOrtho2D(-18.0, 18.0, -18.0, 18.0) -> digunakan untuk mengukur sistem kordinat
glutDisplayFunc(display) -> digunakan untuk menampilkan semua perintah grafis yang ada di fungsi.
glEnd() -> digunakan untuk menentukan titik akhir
glFlush() -> digunakan untuk menggambar ke layar
Berikut ini SOURCECODE membuat gambar rumah:
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    gluOrtho2D(-18.0, 18.0, -18.0, 18.0)
def ploting():
    glClear(GL_COLOR_BUFFER_BIT)
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-1.0, 11.5)
    glVertex2f(1.0, 11.5)
    glVertex2f(1.0, 12.0)
    glVertex2f(-1.0, 12.0)
    glVertex2f(-1.0,11.5)
    glEnd()
    glFlush()
#pintu
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-3.0, 2.0)
    glVertex2f(3.0, 2.0)
    glVertex2f(3.0, -2.0)
    glVertex2f(-3.0, -2.0)
    glVertex2f(-3.0, 2.0)
    glEnd()
    glFlush()
#lanjutan pintu
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-3.0, 3.0)
    glVertex2f(-3.0, 4.0)
    glVertex2f(3.0, 4.0)
    glVertex2f(3.0, 3.0)
    glVertex2f(-3.0,3.0)
    glEnd()
    glFlush()
#tralis
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-4.0, 3.0)
    glVertex2f(4.0, 3.0)
    glVertex2f(4.0, 2.0)
    glVertex2f(-4.0, 2.0)
    glVertex2f(-4.0,3.0)
    glEnd()
    glFlush()
#tembok
    glColor3f(0.5, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-10.0, 7.0)
    glVertex2f(10.0, 7.0)
    glVertex2f(10.0, -2.0)
    glVertex2f(-10.0, -2.0)
    glVertex2f(-10.0,7.0)
    glEnd()
    glFlush()
 #pondasi
    glColor3f(0.5, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-12, -2.0)
    glVertex2f(12.0, -2.0)
    glVertex2f(12.0, -5.0)
    glVertex2f(-12.0, -5.0)
    glVertex2f(-12.0,-2.0)
    glEnd()
    glFlush()

#tangga 1   
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(4.0, -2.0)
    glVertex2f(4.0, -3.0)
    glVertex2f(-4.0, -3.0)
    glVertex2f(-4.0, -2.0)
    glVertex2f(4.0,-2.0)
    glEnd()
    glFlush()

#tangga 2
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(5, -3.0)
    glVertex2f(5.0, -4.0)
    glVertex2f(-5.0, -4.0)
    glVertex2f(-5.0, -3.0)
    glVertex2f(5.0,-3.0)
    glEnd()
    glFlush()

#tangga 3
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(6, -4.0)
    glVertex2f(6.0, -5.0)
    glVertex2f(-6.0, -5.0)
    glVertex2f(-6.0, -4.0)
    glVertex2f(6.0,-4.0)
    glEnd()
    glFlush()

#atap
    glColor3f(0.5, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-8, 7.0)
    glVertex2f(-12, 7.0)
    glVertex2f(-11.0, 12.0)
    glVertex2f(-3.0, 12.0)
    glVertex2f(-8.0, 7.0)
    glVertex2f(8.0,7.0)
    glVertex2f(3.0, 12.0)
    glVertex2f(11, 12.0)
    glVertex2f(12, 7.0)
    glVertex2f(8.0, 7.0)
    glEnd()
    glFlush()

#segitiga atap
    glColor3f(0.5, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(3.0, 12.0)
    glVertex2f(0.0, 15.0)
    glVertex2f(-3.0, 12.0)
    glEnd()
    glFlush()    
#Atap
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-1.0, 11.0)
    glVertex2f(1.0, 11.0)
    glVertex2f(1.0, 8.0)
    glVertex2f(-1.0, 8.0)
    glVertex2f(-1.0,11.0)
    glEnd()
    glFlush()

    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-1.0, 9.5)
    glVertex2f(-0.5, 9.5)
    glVertex2f(-0.5, 8.0)
    glVertex2f(-1.0, 8.0)
    glVertex2f(-1.0,9.5)
    glEnd()
    glFlush()

    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-1.0, 11)
    glVertex2f(-0.5, 11)
    glVertex2f(-0.5, 9.5)
    glVertex2f(-1.0, 9.5)
    glVertex2f(-1.0,11)
    glEnd()
    glFlush()

    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(1.0, 9.5)
    glVertex2f(0.5, 9.5)
    glVertex2f(0.5, 8.0)
    glVertex2f(1.0, 8.0)
    glVertex2f(1.0,9.5)
    glEnd()
    glFlush()

    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(1.0, 11)
    glVertex2f(0.5, 11)
    glVertex2f(0.5, 9.5)
    glVertex2f(1.0, 9.5)
    glVertex2f(1.0,11)
    glEnd()
    glFlush()

#kotak jendela kanan
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(6.0, 4.0)
    glVertex2f(9.0, 4.0)
    glVertex2f(9.0, 0.0)
    glVertex2f(6.0, 0.0)
    glVertex2f(6.0,4.0)
    glEnd()
    glFlush()
#isi jendela kanan 1
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(6.0, 4.0)
    glVertex2f(7.0, 4.0)
    glVertex2f(7.0, 2.0)
    glVertex2f(6.0, 2.0)
    glVertex2f(6.0,4.0)
    glEnd()
    glFlush()

#isi jendela kanan 2
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(6.0, 0.0)
    glVertex2f(7.0, 0.0)
    glVertex2f(7.0, 2.0)
    glVertex2f(6.0, 2.0)
    glVertex2f(6.0,0.0)
    glEnd()
    glFlush()

#isi jendela 3
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(8.0, 2.0)
    glVertex2f(9.0, 2.0)
    glVertex2f(9.0, 0.0)
    glVertex2f(8.0, 0.0)
    glVertex2f(8.0,2.0)
    glEnd()
    glFlush()

#isi jendela kanan 4
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(8.0, 4.0)
    glVertex2f(9.0, 4.0)
    glVertex2f(9.0, 2.0)
    glVertex2f(8.0, 2.0)
    glVertex2f(8.0,4.0)
    glEnd()
    glFlush()

#kotak jendela kiri
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-6.0, 4.0)
    glVertex2f(-9.0, 4.0)
    glVertex2f(-9.0, 0.0)
    glVertex2f(-6.0, 0.0)
    glVertex2f(-6.0,4.0)
    glEnd()
    glFlush()
#isi jendela kiri 1
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-6.0, 4.0)
    glVertex2f(-7.0, 4.0)
    glVertex2f(-7.0, 2.0)
    glVertex2f(-6.0, 2.0)
    glVertex2f(-6.0,4.0)
    glEnd()
    glFlush()

#isi jendela kiri 2
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-6.0, 0.0)
    glVertex2f(-7.0, 0.0)
    glVertex2f(-7.0, 2.0)
    glVertex2f(-6.0, 2.0)
    glVertex2f(-6.0,0.0)
    glEnd()
    glFlush()

#isi jendela kiri 3
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-8.0, 2.0)
    glVertex2f(-9.0, 2.0)
    glVertex2f(-9.0, 0.0)
    glVertex2f(-8.0, 0.0)
    glVertex2f(-8.0,2.0)
    glEnd()
    glFlush()

#isi jendela kiri 4
    glColor3f(0.0, 0.5, 0.5)
    glBegin(GL_LINE_STRIP)
    glVertex2f(-8.0, 4.0)
    glVertex2f(-9.0, 4.0)
    glVertex2f(-9.0, 2.0)
    glVertex2f(-8.0, 2.0)
    glVertex2f(-8.0,4.0)
    glEnd()
    glFlush()
def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB)
    glutInitWindowSize(800,800)
    glutInitWindowPosition(10,10)
    glutCreateWindow("Rumah")
    glutDisplayFunc(ploting)
    

    init()
    glutMainLoop()
main()

Ketika program dijalankan maka akan menghasilkan keluaran objek seperti dibawah ini.



semoga bermanfaat bagi yang sedang belajar OpenGL ataupun yang mengerjakan tugas OpenGL. Terimakasih :)

Comments

Popular posts from this blog

Membuat Lingkaran Dengan Algoritma Bresenham

                      Lingkaran adalah kumpulan dari titik-titik yang memiliki jarak dari titik  pusat yang sama untuk semua titik.   Lingkaran dibuat dengan  menggambarkan seperempat lingkaran, karena bagian lain dapat dibuat  sebagai bagian yang simetris. Penambahan x dapat dilakukan dari 0 ke r  sebesar unit step, yaitu menambahkan ± y untuk setiap step.  Pada dasarnya, mirip dengan penggambaran garis, algoritma  penggambaran lingkaran pun berusaha mencari solusi optimal sedemikian  rupa sehingga lingkaran yang dibentuk adalah sesempurna mungkin. Software yang diperlukan : 1. IDLE Pyhton 3.7  (IDLE) Dibawah ini Import Library Pada Python 3.7  : from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * Link Download Library Python : https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl Pilih Library Pyhton Yang Di bawah ini : 1. PyOpe...

Membuat Objek Spiral Berbentuk Love Menggunakan OpenGL

Software yang diperlukan : 1. IDLE Pyhton 3.7  (IDLE) Dibawah ini Import Library Pada Python 3.7  : from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * Link Download Library Python : https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl Pilih Library Pyhton Yang Di bawah ini : 1. PyOpenGL_accelerate-3.1.5-cp38-cp38-win32.whl 2. PyOpenGL-3.1.5-cp38-cp38-win32.whl (Jika Pyhton yang digunakan adalah pyhton 32 bit, maka Download library yang sesuai dengan bit python pada perangkat masing- masing. Begitu juga sebaliknya jika Pyhton 64 bit).   Berikut adalah Full Source Code nya : from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * import numpy as np def init():     glClearColor(0.0, 0.0, 0.0, 0.0)     gluOrtho2D(-2.0, 2.0, -2.0, 2.0) def plotpoints():     glClear(GL_COLOR_BUFFER_BIT)     glColor3f(1, 1.0, 1.0)     glPointSize(13...