Hai teman-teman, saya kembali lagi nih. Kali ini, saya akan memberikan contoh bagaimana cara membuat sebuah gambar matahari menggunakan PyOpenGL. Berikut contoh source code beserta pembahasannya.
Source Code :
Source Code :
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.) for i in range(0,19): s = 20 glRotatef(s, 0.0, 0.0,1.0) segitiga() glFlush() def segitiga(): 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()
Untuk membuat matahari, kita akan menggunakan bentuk segitiga yang dirotasi sebanyak 18 kali dengan jarak sudut tiap rotasi sebanyak 20 derajat.
Langkah-langkah :
1. Buat fungsi untuk membuat bentuk segitiga
def segitiga():
glBegin(GL_LINE_LOOP)
glVertex2f(-50.0,0.0)
glVertex2f(50.0,0.0)
glVertex2f(0.0,200.0)
glEnd()
Output segitiga :
Jika ingin bentuk segitiga bergaris biasa, gunakan GL_LINE_LOOP. Dan jika ingin bentuk segitiga yang terisi full, maka gunakan GL_TRIANGLES.
2. Setelah itu, rotasikan bentuk segitiga tersebut dengan fungsi glRotatef() dengan jarak sudut sebanyak 20 derajat dan lakukan perulangan sebanyak 18 kali. Maka akan terbentuk segitiga sebanyak 18 buah yang berotasi dengan jarak sudut antar segitiga sebanyak 20 derajat.
2. Setelah itu, rotasikan bentuk segitiga tersebut dengan fungsi glRotatef() dengan jarak sudut sebanyak 20 derajat dan lakukan perulangan sebanyak 18 kali. Maka akan terbentuk segitiga sebanyak 18 buah yang berotasi dengan jarak sudut antar segitiga sebanyak 20 derajat.
def plotpoints():
glColor3f(1.,1.0,0.)
for i in range(0,19):
s = 20
glRotatef(s, 0.0, 0.0,1.0)
segitiga()
glFlush()
Output untuk bentuk matahari dengan segitiga menggunakan GL_LINE_LOOP :
Output untuk gambar matahari dengan segitiga menggunakan GL_TRIANGLES :
Sekian dan terima kasih.
Komentar
Posting Komentar