Tuesday, March 31, 2020

Gambar Objek Spiral berbentuk Hati menggunakan phython OpenGL

halo teman-teman kembali dengan saya, kali ini saya akan berbagi lagi informasi cara membuat gambar love pada phyton OpenGL. Berikut adalah syntaxnya. Pada syntax ini kita menggunakan library numpy karna numpy berfungsi untuk melakukan operasi vektor dan matriks dengan mengolah array dan array multidimensi.


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) #untuk menentukan warna dari gambar hati
    x = -1.140 #x memiliki nilai -1.140

    while(x <= 1.140): #selama x kurang dari sama dengan 1.140 maka 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)) / 2 #mencari y1
        y2 = (np.cbrt(x*x) - np.sqrt(delta)) / 2 #mencari y2
        
        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()
seperti biasa pada syntax sudah terdapat sedikit penjelasan programnya yang bisa membantu teman-teman. Sekian terima kasih

dan ini outputnya

Share:

0 comments:

Post a Comment

Definition List

Unordered List

Support