Menggambar Objek Spiral Berbentuk Hati (Heart)
Menggambar Objek Spiral Berbentuk Hati (Heart)
Bahas Pemograman Yang digunakan dan aplikasi yang di gunakan:
- Python 3.8.2
- Apk Editor : Visual Code (Vs Code)
Modul yang Python yang dipakai:
- PyOpenGL 3.1.5
- PyOpenGL-accelerate 3.1.5
- numpy 1.18.2
Source Code:
pertama Masukan modul PyOpenGL dan modul numpy
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
import numpy as np
penjelasan program:
- Fungsi init:
def init():
glClearColor(0.0, 0.0, 0.0, 0.0)
gluOrtho2D(-2.0, 2.0, -2.0, 2.0)
glClearColor(0.0, 0.0, 0.0, 0.0)
gluOrtho2D(-2.0, 2.0, -2.0, 2.0)
- fungsi def init(): untuk menginilisasi window.
- glClearColor(): memberi warna latar belakan pada kanvas, sebagai contoh (0.0, 0.0, 0.0, 0.0) adalah warna hitam.
- gluOurtho2D(): pernyataan ini digunakan untuk menyatakan ukuran system koordinat dengan struktur(X min, X max, Y min, Y max).
- fungsi def ploting(): untuk membuat sebuah gambar.
- Fungsi heart_spiral_object():
def heart_spiral_object():
glBegin(GL_LINE_STRIP)
glColor3f(0.7, 0.0, 0.0)
x = -1.140
glBegin(GL_LINE_STRIP)
glColor3f(0.7, 0.0, 0.0)
x = -1.140
while(x <= 1.140):
delta = np.cbrt(x*x) * np.sqrt(x*x) - 4*x*x + 4
y1 = (np.cbrt(x*x) + np.sqrt(delta)) / 2
y2 = (np.cbrt(x*x) - np.sqrt(delta)) / 2
glVertex2f(x, y1)
glVertex2f(x, y2)
delta = np.cbrt(x*x) * np.sqrt(x*x) - 4*x*x + 4
y1 = (np.cbrt(x*x) + np.sqrt(delta)) / 2
y2 = (np.cbrt(x*x) - np.sqrt(delta)) / 2
glVertex2f(x, y1)
glVertex2f(x, y2)
x += 0.001
glEnd()
glEnd()
- glBegin(GL_LINE_STRIP) adalah untuk membuat dan mengatur sebuah pola pada gambar.
- glColor3f(1.0, 0.4, 0.5) adalah untuk memberi warna pada objek dengan kode warna RGB
- x adalah objek yang akan di gambar.
- np adalah modul numpy yang di panggil.
- np.cbrt adalah fungsi matematika untuk membantu menghitung akar pangkat tiga dari x untuk semua x sebagai elemen.
- np.sgrt adalah fungsi yang digunakan untuk menetukan akar kuadarat positif dari array berdasarkan elemen
- Fungsi plotpoints:
def plotpoints():
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(1, 1.0, 1.0)
glPointSize(15)
glBegin(GL_LINES)
glVertex2f(-500, 0)
glVertex2f(500, 0)
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(1, 1.0, 1.0)
glPointSize(15)
glBegin(GL_LINES)
glVertex2f(-500, 0)
glVertex2f(500, 0)
glVertex2f(0, -500)
glVertex2f(0, 500)
glEnd()
heart_spiral_object()
glFlush()
glVertex2f(0, 500)
glEnd()
heart_spiral_object()
glFlush()
- fungsi def plotpoints(): untuk membuat sebuah gambar.
- glClear(): untuk memberi warna pada window yang sudah di inilisasi.
- glColor3f(): untuk memberi warna pada objek dengan kode warna RGB.
- glBegin(): untuk membuat dan mengatur sebuah pola pada gambar.
- glPointSize() : untuk mengambar besar titik yang akan di gambar
- glVertex2f(): untuk menentukan koordinat gambar yaitu X, dan y.
- glend(): untuk mengakhiri sebuah program.
- heart_spiral_object(): untuk memangil fungsi def heart_spiral_object()
- glFlush(): merupakan sintaks untuk memastikan gambar bisa di eksekusi
- Fungsi Main():
def main():
glutInit(sys.argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize(500, 500)
glutInitWindowPosition(100, 100)
glutCreateWindow("Gambar Objek Spiral Hati Pertemuan 5 Wiwit Farianto")
glutDisplayFunc(plotpoints)
glutInit(sys.argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize(500, 500)
glutInitWindowPosition(100, 100)
glutCreateWindow("Gambar Objek Spiral Hati Pertemuan 5 Wiwit Farianto")
glutDisplayFunc(plotpoints)
init()
glutMainLoop()
glutMainLoop()
main()
- fungsi def main(): untuk mendeklarsikan fungsi window.
- glutInit(): untuk membuat sebuah tampilan window.
- glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB): untuk menginisialisasi layar grafis menggunakan OpenGL.
- glutInitWindowSize(500,500) : untuk mengatur ukuran sebuah kanvas, dicontohkan perintah atas posisi kiri atas di titik (500, 500).
- glutInitWindowPosition(100,100): perintah ini untuk menginisialisasi posisi kiri atas kanvas/ window.
- glutCreateWindow("Gambar Objek Spiral Hati Pertemuan 5 Wiwit Farianto") pernyataan di atas untuk membuat judu pada kanvas.
- glutDisplayFunc(ploting): pernyataan ini digunakan untuk menampilkan semua perintah grafis yang ada di fungsi.
- glutMainLoop(): event yang menandakan pemrosesan glut terjadi.
Source Code Keseluruhan:
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 heart_spiral_object():
glBegin(GL_LINE_STRIP)
glColor3f(0.7, 0.0, 0.0)
x = -1.140
while(x <= 1.140):
delta = np.cbrt(x*x) * np.sqrt(x*x) - 4*x*x + 4
y1 = (np.cbrt(x*x) + np.sqrt(delta)) / 2
y2 = (np.cbrt(x*x) - np.sqrt(delta)) / 2
glVertex2f(x, y1)
glVertex2f(x, y2)
x += 0.001
glEnd()
def plotpoints():
glClear(GL_COLOR_BUFFER_BIT)
glColor3f(1, 1.0, 1.0)
glPointSize(15)
glBegin(GL_LINES)
glVertex2f(-500, 0)
glVertex2f(500, 0)
glVertex2f(0, -500)
glVertex2f(0, 500)
glEnd()
heart_spiral_object()
glFlush()
def main():
glutInit(sys.argv)
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB)
glutInitWindowSize(500, 500)
glutInitWindowPosition(100, 100)
glutCreateWindow("Gambar Objek Spiral Hati Pertemuan 5 Wiwit Farianto")
glutDisplayFunc(plotpoints)
init()
glutMainLoop()
main()
Hasil Program setelah Dirun:
Komentar
Posting Komentar