Menggambar Matahari dengan Perulangan Segitiga menggunakan OpenGL


Holla teman-teman sekarang kita akan belajar menggambar Matahari dengan segitiga yang dirotasi menggunakan OpenGL. Apa itu Rotasi?
Putaran adalah suatu operasi yang menyebabkan objek bergerak berputar pada titik pusat atau pada sumbu putar yang dipilih berdasarkan sudut putaran tertentu. Rotasi dapat dilakukan hanya dengan pemanggilan fungsi OpenGL yaitu : glRotatef(sudut,x,y,z) 

Berikut Source Code dari gambar Matahari :

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.,1.0,0.)
#  membuat perulangan 0 - 18
#  segitiga akan terbentuk sebanyak 18 kali
# rotasi sudut kelipatan 20
# jika ingin membuat looping dari 0 - 18 harus dilebihkan 1 menjadi 0 -19
for i in range(0,19):
s = 20
glRotatef(s, 0.0, 0.0,1.0)
segitiga()

glFlush()

# Fungsi untuk menggambar bentuk segitiga
def segitiga():
# Jika ingin mengubah ke bentuk segitiga garis
# ganti dengan glBegin(GL_LINE_LOOP)
glBegin(GL_LINE_LOOP)
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("Matahari")
glutDisplayFunc(plotpoints)

init()
glutMainLoop()


main()

Berikut Outputnya :

Matahari 2


Nah yang kedua ini berbeda sedikit dengan Matahari pertama diatas
Berikut Source Codenya :


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.,1.0,0.) #untuk menentukan warna dari gambar
  
    for i in range(0,18): #for digunakan untuk membuat perulangan segitiga
        s = 20 #sudut kelipatan 20
        glRotatef(s, 0.0, 0.0,1.0) #membuat sudut rotasi
        segitiga()       

    glFlush()


def segitiga():#fungsi membuat segitiga

    glBegin(GL_TRIANGLES)#berfungsi untuk membuat bentuk segitiga
    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("Matahari")
    glutDisplayFunc(plotpoints)

    init()
    glutMainLoop()
   
main()

Berikut Outputnya :




Terimakasih teman – teman semoga apa yang saya jelaskan bisa bermanfaat.

Komentar