Gambar Objek Spiral Berbentuk Hati



Sekarang kita akan belajar menggambar objek spiral berbentuk hati dalam OpenGL Pada OpenGL, kita pasti sering mendengar istilah vertex. Menurut kamus, vertex berarti puncakVertex juga berarti titik dimana dua garis bertemu.




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

import numpy as np


def init():
    glClearColor(0.5, 0.5, 0.5, 0.0) Warna gambar background
    gluOrtho2D(-2.0, 2.0, -2.0, 2.0)


def plotpoints():
    glClear(GL_COLOR_BUFFER_BIT)
    glColor3f(1, 1.0, 1.0) #warna garis
    glPointSize(13)
    glBegin(GL_LINES)
    glVertex2f(-500, 0)
    glVertex2f(500, 0)

    glVertex2f(0, -500)
    glVertex2f(0, 500)
    glEnd()
    heart_shape()
    glFlush()

def heart_shape(): Fungsi menggambar hati
    glBegin(GL_LINE_STRIP)
    glColor3f(1.0, 1.0, 1.0)  Adalah warna dari titik yang akan digambar
    x = -1.140 #x memiliki nilai -1.140

    while(x <= 1.140):  Akan melakukan looping
        delta = np.cbrt(x*x) * np.sqrt(x*x) - 4*x*x + 4 Dengan rumus delta = np.cbrt(x*x) * np.sqrt(x*x) - 4*x*x + 4
        y1 = (np.cbrt(x*x) + np.sqrt(delta)) 
        y2 = (np.cbrt(x*x) - np.sqrt(delta))
        
        glVertex2f(x, y1) #mendapat koordinat x dan y1
        glVertex2f(x, y2) #mendapat koordinat x dan y2

        x += 0.001 #x akan bertambah 0.001
    glEnd()  Perulangan berakhir


def main():
    glutInit(sys.argv)
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
    glutInitWindowSize(500, 500)
    glutInitWindowPosition(100, 100)
    glutCreateWindow("Gambar Hati  Pertemuan 5")
    glutDisplayFunc(plotpoints)

    init()
    glutMainLoop()


main()

Berikut hasil outputnya :


Komentar