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()
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()
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
Posting Komentar