Rabu, 04 Oktober 2017

Membuat Bangun Datar dengan FreeGlut

Membuat Segitiga

Sintak:

#include <GL/glut.h>

void garis();
main(int argc, char** argv)
{
  glutInit(&argc,argv);
  glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
  glutInitWindowSize(600,800);
  glutInitWindowPosition(100,100);
  glutCreateWindow("Triangle");
  glClearColor(0.0,0.0,0.0,0.0);
  glMatrixMode(GL_PROJECTION);
  glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
  glutDisplayFunc(garis);
  glutMainLoop();
}

void garis()
{
  glClear(GL_COLOR_BUFFER_BIT);
  glBegin(GL_LINES);
  glColor3f(0.0,0.0,1.0);
  glVertex2f(0.25,0.5);
  glVertex2f(0.75,0.5);
  glColor3f(5.0,0.0,0.0);
  glVertex2f(0.75,0.5);
  glVertex2f(0.5,0.8);
  glColor3f(0.0,2.0,0.0);
  glVertex2f(0.25,0.5);
  glVertex2f(0.5,0.8);
  glPointSize(50.0f) ;
  glEnd();
  glFlush();

}

Output:






















Membuat Kubus

Sintak:

#include<GL/glut.h>
void titik();
void titik1();
main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(600,800);
glutInitWindowPosition(100,100);
glutCreateWindow("Cube");
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
glutDisplayFunc(titik);
glutMainLoop();

}

void titik()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);

glColor3f(5.0,5.0,5.0);
glVertex2f(0.25,0.5);
glVertex2f(0.57,0.5);

glColor3f(2.0,0.0,0.0);
glVertex2f(0.57,0.5); 
glVertex2f(0.57,0.8); 

glColor3f(0.0,0.0,2.0);
glVertex2f(0.25,0.5); 
glVertex2f(0.25,0.8);

glColor3f(2.0,0.0,2.0);
glVertex2f(0.57,0.8); 
glVertex2f(0.25,0.8);

glColor3f(2.0,0.0,2.0);
glVertex2f(0.25,0.5); 
glVertex2f(0.45,0.6);

glColor3f(2.0,0.0,0.0);
glVertex2f(0.25,0.8); 
glVertex2f(0.45,0.85);

glColor3f(0.0,0.0,2.0);
glVertex2f(0.45,0.6); 
glVertex2f(0.45,0.85);

glColor3f(0.0,0.0,2.0);
glVertex2f(0.45,0.6); 
glVertex2f(0.7,0.6);

glColor3f(5.0,5.0,5.0);
glVertex2f(0.57,0.5);
glVertex2f(0.7,0.6);

glColor3f(2.0,2.0,2.0);
glVertex2f(0.7,0.85);
glVertex2f(0.57,0.80);

glColor3f(0.0,0.2,2.0);
glVertex2f(0.7,0.85);
glVertex2f(0.7,0.6);

glColor3f(0.0,0.2,2.0);
glVertex2f(0.7,0.85);
glVertex2f(0.45,0.85);

glPointSize(50.0f) ;
glEnd();
glFlush();
}

Output:





















Membuat Garis Pelangi

Sintak:
#include <GL/glut.h>

void garis();
main(int argc, char** argv) 
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(600,800);
glutInitWindowPosition(100,100);
glutCreateWindow("Rainbow Lines");
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
glutDisplayFunc(garis);
glutMainLoop();
}

void garis()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glColor3f(1.0,0.0,0.0);
glVertex2f(0.65,0.5);
glVertex2f(0.3,0.5);

glColor3f(1.0,1.0,0.0);
glVertex2f(0.65,0.51); 
    glVertex2f(0.3,0.51);
    
    glColor3f(0.0,1.0,0.0);
glVertex2f(0.65,0.52); 
    glVertex2f(0.3,0.52);
    
    glColor3f(0.0,0.0,1.0);
glVertex2f(0.65,0.53); 
    glVertex2f(0.3,0.53);
    
    glColor3f(1.0,0.5,0.0);
glVertex2f(0.65,0.54); 
    glVertex2f(0.3,0.54);
    
    glColor3f(1.0,0.0,1.0);
glVertex2f(0.65,0.55); 
    glVertex2f(0.3,0.55);
    
    glColor3f(1.0,1.0,0.0);
glVertex2f(0.65,0.56); 
    glVertex2f(0.3,0.56);
    
glPointSize(50.0f) ;
glEnd();
glFlush();

}

Output:























Membuat Persegi dalam Persegi

Sintak:
#include <GL/glut.h>

void garis();
main(int argc, char** argv) 
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(600,800);
glutInitWindowPosition(100,100);
glutCreateWindow("Ironi didalam Ironi");
glClearColor(0.0,0.0,0.0,0.0);
glMatrixMode(GL_PROJECTION);
glutDisplayFunc(garis);
glutMainLoop();
}

void garis()
{
glBegin(GL_POLYGON);
glColor3f(1.0,1.0,1.0);
glVertex2f(-0.5,-0.5);
glVertex2f(-0.5,0.5);
glVertex2f(0.5,0.5);
glVertex2f(0.5,-0.5);
glEnd();

glBegin(GL_POLYGON);
glColor3f(5.0,0.0,0.0);
glVertex2f(-0.3,-0.3);
glVertex2f(-0.3,0.3);
glVertex2f(0.3,0.3);
glVertex2f(0.3,-0.3);
glEnd();
glFlush();
}

Output:























Penjelasan

- glClear() merupakan sintaks yang digunakan untuk membersihkan semua pixel
- glBegin() merupakan sintaks untuk memulai membuat gambar
- glVertex() merupakan sintaks untuk memberikan titik pada gambar
- glEnd() merupakan sintaks penutup
- glFlush() merupakan sintaks untuk memastikan gambar bisa dieksekusi
- glutCreateWindow() merupakan sintaks untuk membuat dan menampilkan window
- glutDisplayFunc(mydisplay) merupakan sintaks untuk memanggil method mydisplay
- glutMainLoop() merupakan sintaks untuk me-looping atau mengulang fungsi/method main

Tidak ada komentar:

Posting Komentar