Selasa, 19 Juni 2018

Cara Membuat Titik Pada OpenGL

  #include <GL/glut.h>
        #include <GL/gl.h>
        #include <windows.h>

        void userdraw () {

        glBegin (GL_POINTS);
      glVertex2i (150,0);
      glVertex2i (150,200);
      glVertex2i (370,200);

        glEnd ();
        }

        void display (void) {
             glClear (GL_COLOR_BUFFER_BIT);
             userdraw ();
                glutSwapBuffers ();
        }
        int main (int argc, char **argv) {
        glutInit (&argc,argv);
        glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGB);
        glutInitWindowSize (640,480);
        glutCreateWindow ("Membuat Objek Titik");
        glClearColor (0.0, 0.0, 0.0, 0.0);
        gluOrtho2D (0.,640.,-240.,240.);
        glutIdleFunc (display);
        glutDisplayFunc (display);
        glutMainLoop ();
        return 0;
        }
       


Transformasi Objek Grafika Rotasi 45⁰

#include <GL/glut.h>
#include <windows.h>
GLfloat  xangle=0.0, yangle=0.0;
void init (void) {
glClearColor (1.0, 1.0, 1.0, 0.0);
glLineWidth(1.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho(-6,6,-6,6,-6,6);
}
void display (void) {
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glColor3f (1.0, 0.0, 0.0);
glBegin (GL_POLYGON);
glVertex2f (-4.0, -5.0);
glVertex2f (-1.0, -5.0);
glVertex2f (-1.0, -1.0);
glVertex2f (-4.0, -1.0);
glEnd ();
glPopMatrix ();
glutSwapBuffers ();
glFlush ();
}
void KeyboardAssign (GLubyte key, GLint x, GLint y) { switch (key) {
case 'g':
glRotatef (-45.0, 2.0, 2.0, 2.0);   
glutPostRedisplay ();
break;
}
}
int main (int argc, char** argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition (0, 0); glutInitWindowSize (1500, 1500); glutCreateWindow ("Transformasi"); init ();
glutDisplayFunc (display);
glutKeyboardFunc (KeyboardAssign);
glutMainLoop ();
}

Tekan "G" maka akan terlihat Skalanya















Transformasi Objek Grafika Skala 2.1.0

#include <GL/glut.h>
#include <windows.h>
GLfloat  xangle=0.0, yangle=0.0;
void init (void) {
glClearColor (1.0, 1.0, 1.0, 0.0);
glLineWidth(1.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho(-6,6,-6,6,-6,6);
}
void display (void) {
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glColor3f (1.0, 0.0, 0.0);
glBegin (GL_POLYGON);
glVertex2f (-4.0, -5.0);
glVertex2f (-1.0, -5.0);
glVertex2f (-1.0, -1.0);
glVertex2f (-4.0, -1.0);
glEnd ();
glPopMatrix ();
glutSwapBuffers ();
glFlush ();
}
void KeyboardAssign (GLubyte key, GLint x, GLint y) { switch (key) {
case 's':
glScalef (2.0, 1.0, 0.0);
glutPostRedisplay ();
break;
}
}
int main (int argc, char** argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500); glutCreateWindow ("Transformasi"); init ();
glutDisplayFunc (display);
glutKeyboardFunc (KeyboardAssign);
glutMainLoop ();
}

Tekan "S" maka akan terlihat Objeknya





Transformasi Dari Objek Grafika

#include <GL/glut.h>
#include <windows.h>
GLfloat  xangle=0.0, yangle=0.0;
void init (void) {
glClearColor (1.0, 1.0, 1.0, 0.0);
glLineWidth(1.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho(-6,6,-6,6,-6,6);
}
void display (void) {
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glColor3f (1.0, 0.0, 0.0);
glBegin (GL_POLYGON);
glVertex2f (-4.0, -5.0);
glVertex2f (-1.0, -5.0);
glVertex2f (-1.0, -1.0);
glVertex2f (-4.0, -1.0);
glEnd ();
glPopMatrix ();
glutSwapBuffers ();
glFlush ();
}
void KeyboardAssign (GLubyte key, GLint x, GLint y) { switch (key) {
case 't':
glTranslatef (4.0, 1.0, 0.0);   
glutPostRedisplay ();
break;
}
}
int main (int argc, char** argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition (0, 0); glutInitWindowSize (1500, 1500); glutCreateWindow ("Transformasi"); init ();
glutDisplayFunc (display);
glutKeyboardFunc (KeyboardAssign);
glutMainLoop ();
}

Tekan "T" maka akan terlihat transformasi







Senin, 18 Juni 2018

Latihan Menggerakkan Objek Grafika Memutar Ke Sumbu Z

#include <GL/glut.h>
#include <windows.h>
GLfloat xangle=0.0, yangle=0.0;
void init (void) {
glClearColor (1.0, 1.0, 1.0, 0.0);
glLineWidth (1.0);
glColor3f (1.0, 0.0, 0.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho (-6,6, -6,6, -6,6);
}
void display (void) {
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glBegin (GL_LINES);
glVertex2f (-5.5,0.0);
glColor3f(1.0, 0.0, 0.0);
glVertex2f (5.5,0.0);
glEnd ();
glBegin (GL_LINES);
glVertex2f (0.0,-5.5);
glColor3f(1.0, 0.0, 0.0);
glVertex2f (0.0, 5.5);
glEnd ();
glRotatef(xangle, 0.0, 0.0, 1.0);
glBegin (GL_POLYGON);
glColor3f(-1.0, 0.0, 0.0);
glVertex2f (1.0, 1.0);
glColor3f(-1.0, 0.0, 0.0);
glVertex2f (4.0, 1.0);
glColor3f(0.0, 1.0, 0.0);
glVertex2f (1.0, 5.0);
glEnd ();
glPopMatrix();
glutSwapBuffers();
glFlush ();
}
void KeyboardAssign (GLubyte key, GLint x, GLint y) { switch (key) {
case 'g':
xangle +=10.0;
glColor3f (0.0, 0.0, 1.0);
glutPostRedisplay ();
break;
}
}
int main (int argc, char** argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("Latihan Menggerakkan Objek");
init();
glutDisplayFunc (display);
glutKeyboardFunc (KeyboardAssign);
glutMainLoop ();
}

Tekan "G" maka akan menjadi




Latihan Menggerakkan Objek Grafika Memutar Ke Sumbu Y

#include <GL/glut.h>
#include <windows.h>
GLfloat xangle=0.0, yangle=0.0;
void init (void) {
glClearColor (1.0, 1.0, 1.0, 0.0);
glLineWidth (1.0);
glColor3f (1.0, 0.0, 0.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho (-6,6, -6,6, -6,6);
}
void display (void) {
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glBegin (GL_LINES);
glVertex2f (-5.5,0.0);
glColor3f(1.0, 0.0, 0.0);
glVertex2f (5.5,0.0);
glEnd ();
glBegin (GL_LINES);
glVertex2f (0.0,-5.5);
glColor3f(1.0, 0.0, 0.0);
glVertex2f (0.0, 5.5);
glEnd ();
glRotatef(xangle, 0.0, 1.0, 0.0);
glBegin (GL_POLYGON);
glColor3f(-1.0, 0.0, 0.0);
glVertex2f (1.0, 1.0);
glColor3f(-1.0, 0.0, 0.0);
glVertex2f (4.0, 1.0);
glColor3f(0.0, 1.0, 0.0);
glVertex2f (1.0, 5.0);
glEnd ();
glPopMatrix();
glutSwapBuffers();
glFlush ();
}
void KeyboardAssign (GLubyte key, GLint x, GLint y) { switch (key) {

case 'g':
xangle +=10.0;
glColor3f (0.0, 0.0, 1.0);
glutPostRedisplay ();
break;
}
}
int main (int argc, char** argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("Latihan Menggerakkan Objek");
init();
glutDisplayFunc (display);
glutKeyboardFunc (KeyboardAssign);
glutMainLoop ();
}

Tekan "G"  melihat rotasi




Minggu, 17 Juni 2018

Latihan Menggerakkan Objek Grafika

#include <GL/glut.h>
#include <windows.h>
GLfloat xangle=0.0, yangle=0.0;
void init (void) {
glClearColor (1.0, 1.0, 1.0, 0.0);
glLineWidth (1.0);
glColor3f (1.0, 0.0, 0.0);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glOrtho (-6,6, -6,6, -6,6);
}
void display (void) {
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix();
glBegin (GL_LINES);
glVertex2f (-5.5,0.0);
glColor3f(1.0, 0.0, 0.0);
glVertex2f (5.5,0.0);
glEnd ();
glBegin (GL_LINES);
glVertex2f (0.0,-5.5);
glColor3f(1.0, 0.0, 0.0);
glVertex2f (0.0, 5.5);
glEnd ();
glRotatef(xangle, 1.0, 0.0, 0.0);
glBegin (GL_POLYGON);
glColor3f(-1.0, 0.0, 0.0);
glVertex2f (1.0, 1.0);
glColor3f(-1.0, 0.0, 0.0);
glVertex2f (4.0, 1.0);
glColor3f(0.0, 1.0, 0.0);
glVertex2f (1.0, 5.0);
glEnd ();
glPopMatrix();
glutSwapBuffers();
glFlush ();
}
void KeyboardAssign (GLubyte key, GLint x, GLint y) { switch (key) {
case 'g':
xangle +=10.0;
glColor3f (0.0, 0.0, 1.0);
glutPostRedisplay ();
break;
}
}
int main (int argc, char** argv) {
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition (0, 0); glutInitWindowSize (1500, 1500); glutCreateWindow ("Latihan Menggerakkan Objek"); init();
glutDisplayFunc (display);
glutKeyboardFunc (KeyboardAssign);
glutMainLoop ();
}

Tekan "G"  melihat rotasi


Bangun Dasar Grafika SegiTiga

#include <GL/glut.h>           
#include <windows.h>   
#include <GL/gl.h>
void init (void) {   
glClearColor (1.0, 1.0, 1.0, 0.0);   
glLineWidth (1.0);   
glColor3f (1.0, 0.0, 0.0);           
glOrtho (-6,6, -6,6, -6,6);   
}               
void Display (void) {       
glClear (GL_COLOR_BUFFER_BIT);   
glBegin (GL_LINES);   
glVertex2f (-5.5, 0.0);       
glColor3f (1.0, 0.0, 0.0);
glVertex2f (5.5, 0.0);       
glEnd ();       
glBegin (GL_LINES);       
glVertex2f (0.0, -5.5);   
glColor3f (1.0, 0.0, 0.0);   
glVertex2f (0.0, 5.5);       
glEnd ();               
glBegin (GL_TRIANGLES);           
glColor3f (1.0, 0.0, 0.0);       
glVertex2f (1.0, 1.0);       
glColor3f (0.0, 0.0, 1.0);       
glVertex2f (3.0, 1.0);
glColor3f (0.0, 1.0, 0.0);
glVertex2f (2.0, 4.0);
glEnd ();
glBegin (GL_TRIANGLES);           
glColor3f (0.0, 1.0, 0.0);       
glVertex2f (-2.0, -1.0);       
glColor3f (1.0, 0.0, 0.0);       
glVertex2f (-3.0, -4.0);
glColor3f (0.0, 0.0, 1.0);
glVertex2f (-1.0, -4.0); 
glEnd ();
glBegin (GL_TRIANGLES);           
glColor3f (1.0, 1.0, 0.0);       
glVertex2f (1.0, -1.0);       
glColor3f (0.0, 1.0, 1.0);       
glVertex2f (2.0, -4.0);
glColor3f (1.0, 0.43, 0.78);
glVertex2f (3.0, -1.0);
glEnd ();
glBegin (GL_TRIANGLES);           
glColor3f (1.0, 0.43, 0.78);       
glVertex2f (-1.0, 4.0);
glColor3f (1.0, 1.0, 0.0);       
glVertex2f (-3.0, 4.0);       
glColor3f (0.0, 1.0, 1.0);       
glVertex2f (-2.0, 1.0);
glEnd ();
glutSwapBuffers ();
}
int main (int argc, char** argv) {   
glutInit (&argc, argv);   
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);   
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("bangun dasar grafik");   
init ();
glutDisplayFunc (Display);
glutMainLoop ();
return 0;
}



Bangun Dasar Grafika Limas

#include <GL/glut.h>         
#include <windows.h> 
#include <GL/gl.h>
void init (void) { 
glClearColor (1.0, 1.0, 1.0, 0.0); 
glLineWidth (1.0); 
glColor3f (1.0, 0.0, 0.0);         
glOrtho (-6,6, -6,6, -6,6); 
}             
void Display (void) {     
glClear (GL_COLOR_BUFFER_BIT); 
glBegin (GL_LINES); 
glVertex2f (-5.5, 0.0);     
glColor3f (1.0, 0.0, 0.0);
glVertex2f (5.5, 0.0);     
glEnd ();     
glBegin (GL_LINES);     
glVertex2f (0.0, -5.5); 
glColor3f (1.0, 0.0, 0.0); 
glVertex2f (0.0, 5.5);     
glEnd ();         
glBegin (GL_POLYGON);         
glColor3f (0.0, 1.0, 0.0);     
glVertex2f (2.0, 1.0);     
glColor3f (0.0, 0.0, 1.0);     
glVertex2f (1.0, 3.0);
glColor3f (1.0, 0.0, 0.0);
glVertex2f (2.0, 5.0);
glColor3f (0.0, 0.0, 1.0);
glVertex2f (3.0, 3.0);
glEnd ();
glBegin (GL_POLYGON);         
glColor3f (0.0, 1.0, 0.0);     
glVertex2f (-2.0, -1.0);     
glColor3f (0.0, 0.0, 1.0);     
glVertex2f (-3.0, -3.0);
glColor3f (1.0, 0.0, 0.0);
glVertex2f (-2.0, -5.0);
glColor3f (0.0, 0.0, 1.0);
glVertex2f (-1.0, -3.0);
glEnd ();
glBegin (GL_POLYGON);         
glColor3f (1.0, 1.0, 0.0);     
glVertex2f (2.0, -1.0);     
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (1.0, -3.0);
glColor3f (0.0, 1.0, 1.0);
glVertex2f (2.0, -5.0);
glColor3f (1.0, 0.43, 0.78);
glVertex2f (3.0, -3.0);
glEnd ();
glBegin (GL_POLYGON);         
glColor3f (0.0, 1.0, 1.0);     
glVertex2f (-2.0, 5.0);
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (-3.0, 3.0);     
glColor3f (1.0, 1.0, 0.0);     
glVertex2f (-2.0, 1.0);
glColor3f (1.0, 0.43, 0.78);
glVertex2f (-1.0, 3.0);
glEnd ();
glutSwapBuffers ();
}
int main (int argc, char** argv) { 
glutInit (&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("bangun dasar grafik"); 
init ();
glutDisplayFunc (Display);
glutMainLoop ();
return 0;
}



Bangun Dasar Grafika Garis dan SegiTiga

#include <GL/glut.h>
#include <windows.h> 
#include <GL/gl.h>
void init (void) { 
glClearColor (1.0, 1.0, 1.0, 0.0); 
glLineWidth (1.0); 
glColor3f (1.0, 0.0, 0.0);         
glOrtho (-6,6, -6,6, -6,6); 
}             
void Display (void) {     
glClear (GL_COLOR_BUFFER_BIT); 
glBegin (GL_LINES); 
glVertex2f (-5.5, 0.0);     
glColor3f (1.0, 0.0, 0.0);
glVertex2f (5.5, 0.0);     
glEnd ();     
glBegin (GL_LINES);     
glVertex2f (0.0, -5.5); 
glColor3f (1.0, 0.0, 0.0); 
glVertex2f (0.0, 5.5);     
glEnd ();             
glBegin (GL_TRIANGLES);         
glColor3f (0.0, 0.0, 0.0);     
glVertex2f (1.0, 1.0);     
glColor3f (0.0, 0.0, 0.0);     
glVertex2f (4.0, 1.0);
glColor3f (0.0, 1.0, 0.0);
glVertex2f (1.0, 5.0);
glEnd ();
glutSwapBuffers ();
}
int main (int argc, char** argv) { 
glutInit (&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("bangun dasar grafik"); 
init ();
glutDisplayFunc (Display);
glutMainLoop ();
return 0;
}



Bangun Dasar Grafika Limas Segi Empat

#include <GL/glut.h>         
#include <windows.h> 
#include <GL/gl.h>
void init (void) { 
glClearColor (1.0, 1.0, 1.0, 0.0); 
glLineWidth (1.0); 
glColor3f (1.0, 0.0, 0.0);         
glOrtho (-6,6, -6,6, -6,6); 
}             
void Display (void) {     
glClear (GL_COLOR_BUFFER_BIT); 
glBegin (GL_LINES); 
glVertex2f (-5.5, 0.0);     
glColor3f (1.0, 0.0, 0.0);
glVertex2f (5.5, 0.0);     
glEnd ();     
glBegin (GL_LINES);     
glVertex2f (0.0, -5.5); 
glColor3f (1.0, 0.0, 0.0); 
glVertex2f (0.0, 5.5);     
glEnd ();                 
glBegin (GL_TRIANGLES);         
glColor3f (1.0, 0.0, 0.0);     
glVertex2f (1.0, 1.0);     
glColor3f (0.0, 0.0, 1.0);     
glVertex2f (4.0, 1.0);
glColor3f (0.0, 1.0, 0.0);
glVertex2f (1.0, 5.0);
glEnd ();
glBegin (GL_POLYGON);         
glColor3f (0.0, 1.0, 0.0);     
glVertex2f (-2.0, -1.0);     
glColor3f (0.0, 0.0, 1.0);     
glVertex2f (-3.0, -3.0);
glColor3f (1.0, 0.0, 0.0);
glVertex2f (-2.0, -5.0);
glColor3f (0.0, 0.0, 1.0);
glVertex2f (-1.0, -3.0);
glEnd ();
glBegin (GL_POLYGON);         
glColor3f (1.0, 1.0, 0.0);     
glVertex2f (2.0, -1.0);     
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (1.0, -3.0);
glColor3f (0.0, 1.0, 1.0);
glVertex2f (2.0, -5.0);
glColor3f (1.0, 0.43, 0.78);
glVertex2f (3.0, -3.0);
glEnd ();
glBegin (GL_TRIANGLES);         
glColor3f (0.0, 1.0, 1.0);     
glVertex2f (-1.0, 1.0);     
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (-4.0, 1.0);
glColor3f (1.0, 1.0, 0.0);
glVertex2f (-1.0, 5.0);
glEnd ();
glutSwapBuffers ();
}
int main (int argc, char** argv) { 
glutInit (&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("bangun dasar grafik"); 
init ();
glutDisplayFunc (Display);
glutMainLoop ();
return 0;
}


Bangun Dasar Grafika SegiTiga

#include <GL/glut.h>         
#include <windows.h> 
#include <GL/gl.h>
void init (void) { 
glClearColor (1.0, 1.0, 1.0, 0.0); 
glLineWidth (1.0); 
glColor3f (1.0, 0.0, 0.0);         
glOrtho (-6,6, -6,6, -6,6); 
}             
void Display (void) {     
glClear (GL_COLOR_BUFFER_BIT); 
glBegin (GL_LINES); 
glVertex2f (-5.5, 0.0);     
glColor3f (1.0, 0.0, 0.0);
glVertex2f (5.5, 0.0);     
glEnd ();     
glBegin (GL_LINES);     
glVertex2f (0.0, -5.5); 
glColor3f (1.0, 0.0, 0.0); 
glVertex2f (0.0, 5.5);     
glEnd ();                 
glBegin (GL_TRIANGLES);         
glColor3f (1.0, 0.0, 0.0);     
glVertex2f (1.0, 1.0);     
glColor3f (0.0, 0.0, 1.0);     
glVertex2f (5.0, 1.0);
glColor3f (0.0, 1.0, 0.0);
glVertex2f (3.0, 5.0);
glEnd ();
glBegin (GL_TRIANGLES);         
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (-1.0, 1.0);     
glColor3f (0.0, 1.0, 1.0);     
glVertex2f (-5.0, 1.0);
glColor3f (1.0, 1.0, 0.0);
glVertex2f (-3.0, 5.0);
glEnd ();
glBegin (GL_TRIANGLES);         
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (2.0, -1.0);     
glColor3f (0.0, 1.0, 1.0);     
glVertex2f (0.0, -5.0);
glColor3f (1.0, 1.0, 0.0);
glVertex2f (-2.0, -1.0);
glEnd ();
glutSwapBuffers ();
}
int main (int argc, char** argv) { 
glutInit (&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("bangun dasar grafik"); 
init ();

glutDisplayFunc (Display);
glutMainLoop ();
return 0;
}


Bangun Dasar Grafika Segi Empat dan Segi Tiga


#include <GL/glut.h>         
#include <windows.h> 
#include <GL/gl.h>
void init (void) { 
glClearColor (1.0, 1.0, 1.0, 0.0); 
glLineWidth (1.0); 
glColor3f (1.0, 0.0, 0.0);         
glOrtho (-6,6, -6,6, -6,6); 
}             
void Display (void) {     
glClear (GL_COLOR_BUFFER_BIT); 
glBegin (GL_LINES); 
glVertex2f (-5.5, 0.0);     
glColor3f (1.0, 0.0, 0.0);
glVertex2f (5.5, 0.0);     
glEnd ();     
glBegin (GL_LINES);     
glVertex2f (0.0, -5.5); 
glColor3f (1.0, 0.0, 0.0); 
glVertex2f (0.0, 5.5);     
glEnd ();     
         
         
glBegin (GL_TRIANGLES);         
glColor3f (1.0, 0.0, 0.0);     
glVertex2f (1.0, 1.0);     
glColor3f (0.0, 0.0, 1.0);     
glVertex2f (4.0, 1.0);
glColor3f (0.0, 1.0, 0.0);
glVertex2f (1.0, 5.0);
glEnd ();
glBegin (GL_POLYGON);         
glColor3f (0.0, 1.0, 0.0);     
glVertex2f (-1.0, -1.0);     
glColor3f (0.0, 0.0, 1.0);     
glVertex2f (-1.0, -5.0);
glColor3f (1.0, 0.0, 0.0);
glVertex2f (-4.0, -5.0);
glColor3f (1.0, 0.43, 0.78);
glVertex2f (-4.0, -1.0);
glEnd ();
glBegin (GL_POLYGON);         
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (1.0, -1.0);     
glColor3f (0.0, 1.0, 1.0);     
glVertex2f (1.0, -5.0);
glColor3f (1.0, 0.43, 0.78);
glVertex2f (4.0, -5.0);
glColor3f (1.0, 1.0, 0.0);
glVertex2f (4.0, -1.0);
glEnd ();
glBegin (GL_TRIANGLES);         
glColor3f (0.0, 1.0, 1.0);     
glVertex2f (-1.0, 1.0);     
glColor3f (1.0, 0.43, 0.78);     
glVertex2f (-4.0, 1.0);
glColor3f (1.0, 1.0, 0.0);
glVertex2f (-1.0, 5.0);
glEnd ();
glutSwapBuffers ();
}
int main (int argc, char** argv) { 
glutInit (&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 
glutInitWindowPosition (0, 0);
glutInitWindowSize (1500, 1500);
glutCreateWindow ("bangun dasar grafik"); 
init ();
glutDisplayFunc (Display);
glutMainLoop ();
return 0;
}