Pemrograman OpenGL di Linux menggunakan GLUT

Kebetulan dapet tugas dari kampus untuk membuat garis menggunakan OpenGL (Open Graphics Library), pertanyaan yang langsung terfikir yaitu "Apa itu OpenGL bukan?" yeah, saya langsung teringat dengan berbagai game yang pernah saya mainkan di PC/Laptop kebanyakan biasanya menggunakan library OpenGL untuk urusan grafisnya, disamping menggunakan Direct3D.

Tetapi disini saya tidak akan membahas apa itu OpenGL, anda bisa dapat informasi banyak tentang hal ini di internet (bisa juga dibilang kalau saya males) :D. Oke lanjut, jadi tugas dari dosen ini saya disuruh untuk membuat program untuk membuat garis vertikal, horizontal, dan diagonal dengan menggunakan library OpenGL. Karena saya menggunakan sistem operasi Linux, maka saya tinggal menginstall library nya yaitu free-glut versi opensource dari library GLUT(OpenGL Utility Toolkit). Oke karena saya menggunakan sistem operasi debian dan ingin menggunakan bahasa pemrograman c untuk pemrogramannya, maka saya hanya perlu mengetik pada terminal :

fathiraz@an0th3r:~$ sudo apt-get install freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev 
 

sekarang library free-glut tinggal kita import dalam bentuk header bahasa c. coba ketik baris coding berikut di text editor anda dan save dengan nama tugas.c :

// include library glutnya
#include 

// program utama
int main(int argc, char **argv) {
 int pil;
 float x, y;

 // menampilkan menu dan pilihan
 printf("              [ MENU ]             \n\n");
 printf(" 1. Garis Vertikal\n");
 printf(" 2. Garis Horizontal\n");
 printf(" 3. Garis Diagonal\n\n");
 printf("Masukkan pilihan anda [1..3] : ");
 scanf("%i", &pil);
 
 // seleksi kondisi pilihan
 if (pil == 1) {
  printf("\n\n        [ Garis Vertikal ]        \n\n");
  printf("Masukkan y [1..99] : ");
  scanf("%f", &y);
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
  // posisi kotak (x,y)
  glutInitWindowPosition(405,95);
  // besarnya kotak (x,y)
  glutInitWindowSize(500,500);
  glutCreateWindow("Garis Vertikal OpenGL");
  glClear(GL_COLOR_BUFFER_BIT);
  // gambar garisnya
  glBegin(GL_LINES);
  glVertex2f (0.0, 0.0);
  glVertex2f (0.0, y/100);
  glEnd();
  glFlush();
  glutMainLoop();
 } else if (pil == 2) {
  printf("\n\n       [ Garis Horizontal ]       \n\n");
  printf("Masukkan x [1..99] : ");
  scanf("%f", &x);
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
  // posisi kotak (x,y)
  glutInitWindowPosition(405,95);
  // besarnya kotak (x,y)
  glutInitWindowSize(500,500);
  glutCreateWindow("Garis Horizontal OpenGL");
  glClear(GL_COLOR_BUFFER_BIT);
  // gambar garisnya
  glBegin(GL_LINES);
  glVertex2f (0.0, 0.0);
  glVertex2f (x/100, 0.0);
  glEnd();
  glFlush();
  glutMainLoop();
 } else if (pil == 3) {
  printf("\n\n        [ Garis Diagonal ]        \n\n");
  printf("Masukkan x [1..99] : ");
  scanf("%f", &x);
  printf("Masukkan y [1..99] : ");
  scanf("%f", &y);
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
  // posisi kotak (x,y)
  glutInitWindowPosition(405,95);
  // besarnya kotak (x,y)
  glutInitWindowSize(500,500);
  glutCreateWindow("Garis Diagonal OpenGL");
  glClear(GL_COLOR_BUFFER_BIT);
  // gambar garisnya
  glBegin(GL_LINES);
  glVertex2f (0.0, 0.0);
  glVertex2f (x/100, y/100);
  glEnd();
  glFlush();
  glutMainLoop();
 } else {
  // print error
  printf("ERROR!! Masukkan pilihan antara 1-3 !\n");
 }
 
 return 0;
}

selanjutnya tinggal anda compile menggunakan perintah :

gcc -lglut -Wall tugas.c -o tugas

lalu jalankan :

./tugas

screenshotnya :


Tampilan Awal Menu



Garis Vertikal



Garis Horizontal



Garis Diagonal






2 comments

2 comments :

Post a Comment