Minggu, 19 April 2020

Menggambar Bunga Matahari Pada Python


BUNGA MATAHARI PADA PYTHON


Pada tugas kali ini kita diminta untuk membuat gambar bunga Matahari dengan Bahasa Python. Kita diminta untuk membuat bunga Matahari dengan kelopak berbentuk segitiga sebanyak 18 buah dan berwarna kuning. Langsung saja penjelasannya pada program berikut ini :

Pertama import OpenGL :
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *

Selanjutnya mendefinisikan window dimana didalamnya terdapat glClearColor dan gluOrtho2D. pada glClearColor kita harus menentukan warna background pada layar, disini kita gunakan warna hitam sebagai background (0.0, 0.0, 0.0, 0.0) dan gluOrtho2D adalah untuk penempatan koordinat objek.
def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    gluOrtho2D(-500.0, 500.0, -500.0, 500.0)

Pada tahap ini kita buat fungsi plotpoints untuk membuat gambar. Lalu tentukan warna yang akan digunakan pada objek dengan glColor3f, buat perulangan untuk kelopak bunga matahari sebanyak 18 kali dengan menggunakan for dan gunakan glRotatef() untuk melakukan rotasi pada objek.
def plotpoints():
    glColor3f(1.5, 1.5, 0.0)
    for i in range(0, 19):
        s = 20
        glRotatef(s, 0.0, 0.0,1.0)
        bunga_matahari()
    glFlush()

Setelah itu buat fungsi bunga_matahari untuk membuat gambar bunga matahari. Buat object segitiga dengan menggunakan GL_TRIANGLES. Setelah itu tentukan titik awal dan akhir menggunakan glVertex2f sebanyak 3 kali karena segitiga mempunyai tiga sisi.

def bunga_matahari():
    glBegin(GL_TRIANGLES)
    glVertex2f(-50.0, 0.0)
    glVertex2f(50.0, 0.0)
    glVertex2f(0.0, 200.0)
    glEnd()

Lalu pada langkah terakhir, definisikan fungsi main() :
·         glutInit(sys.argv) untuk mengatur pembuatan window.
·         glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB) untuk meminta window yang bersifat double buffered, dengan warna RGB.
·         glutInitWindowSize untuk membuat window dengan ukuran sesuai dengan parameter yang dituliskan.
·         glutInitWindowPosition untuk membuat window dengan letak sesuai dengan parameter yang dituliskan.
·         glutCreateWindow("Gambar Hati (Alma Alfiatul Inayah)") untuk membuat dan mengatur jendela dengan judul “Gambar Hati (Alma Alfiatul Inayah)”.
·         glutDisplayFunc(plotpoints) untuk pemanggilan display.
·         glutMainLoop() untuk perulangan display agar program tidak berhenti
def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
    glutInitWindowSize(500, 500)
    glutInitWindowPosition(100, 100)
    glutCreateWindow("Gambar Bunga Matahari || Alma Alfiatul Inayah 17102050")
    glutDisplayFunc(plotpoints)
    init()
    glutMainLoop()

Berikut adalah program lengkapnya :
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *


def init():
    glClearColor(0.0, 0.0, 0.0, 0.0)
    gluOrtho2D(-500.0, 500.0, -500.0, 500.0)


def plotpoints():
    glColor3f(1.5, 1.5, 0.0)
    for i in range(0, 19):
        s = 20
        glRotatef(s, 0.0, 0.0,1.0)
        bunga_matahari()
    glFlush()

def bunga_matahari():
    glBegin(GL_TRIANGLES)
    glVertex2f(-50.0, 0.0)
    glVertex2f(50.0, 0.0)
    glVertex2f(0.0, 200.0)
    glEnd()


def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
    glutInitWindowSize(500, 500)
    glutInitWindowPosition(100, 100)
    glutCreateWindow("Gambar Bunga Matahari || Alma Alfiatul Inayah 17102050")
    glutDisplayFunc(plotpoints)

    init()
    glutMainLoop()

main()

Output :