Sunday, April 28, 2013

Primitif Objek

Primitif objek dapat diartikan sebagai sebuah bentuk dasar dari objek grafis yang dapat dimanipulasi.  Primitive objek yang menjadi dasar semua objek grafis adalah titik(dot). Primitif objek terdiri atas 
1. Titik
Titik merupakan elemen yang paling dasar dalam menggambar. Pada Glut untuk menggambar titik bisa dengan memanggil fungsi GL_POINT.
Sedangkan untuk posisi titik tesebut menggunakan beberapa fungsi berikut:
  • glVertex2i(x,y) : Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa integer. Contoh glVertex2i(10,10);
  •  glVertex2f(x,y) : Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa float. Contoh glVertex2f(10.0,10.0);
  •  glVertex2d(x,y) : Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan berupa double. Contoh glVertex2d(10.0,10.0);

2. Garis
Beberapa fungsi untuk mengambar garis pada Glut yaitu :
  • GL_LINES
Primitif objek ini adalah suatu primitive objek guna menciptakan suatu garis.
Dengan mempertemukan dua buah titik maka akan terbentuk sebuah garis.
Jadi dapat disimpulkan: ∑ vertek = 2N, N= jumlah garis
Ilustrasi :  


  • GL_LINE_LOOP
Primitif objek ini, pada vertex awal dan vertex terakhir saling terhubung 
Ilustrasi :         
  • GL_LINE_STRIP
Rumus pada line strip : ∑ vertek = N + 1
Ilustrasi :              
3. Bangun 2D
yang termask ojek primitif pada bangun 2 dimensi diantaranya yaitu : segitiga, persegi, jajar genjang, belah ketupat, layang-layang, lingkaran. beriku ini adalah fungsi untuk menggambar 2 dimensi pada glut :
  • GL_TRIANGLES
Triangle atau segitiga adalah tiga buah titik yang terhubung menjadi suatu segitiga dengan blok di tengahnya. Pada penggunaan primitive objek ini harus menggunakan minimal 3 buah vertex guna membentuk suatu objek.
vertek = 3N, N=Jumlah segitiga

Ilustrasi :
  • GL_TRIANGLE_FAN

Triangles fan adalah pembuatan suatu objek dengan menggunakan segitiga dimana hanya menggunakan 1 titik pusat saja. 
Ilustrasi :
  • GL_TRIANGLE_STRIP

Pada triangles strip jumlah vertex yang dipergunakan adalah 4 buah vertex.
Ilusrtasi :


  • GL_QUADS
Quad atau segempat adalah empat buah titik yang terhubung menjadi suatu segiempat dengan blok di tengahnya.  
Ilustrasi :










  • GL_QUAD_STRIP
Pada quads strip 4 buah vertex merupakan 1 kelompok.
Ilustrasi :











  • GL_POLYGON
Polygon merupakan suatu fungsi yang mirip dengan polyline, tetapi menghasilkan kurva tertutup dengan blok warna (fill). 
Ilustrasi :







Adapun fungsi lain untuk mengatur propertis objek tersebut antara lain:
  • glLineWidth yaitu suatu fungsi yang berfungsi untuk mengatur tebalnya garis
  • glPointSize yaitu suatu fungsi yang berfungsi untuk mengatur besarnya suatu objek
  • gluOrtho2D yaitu suatu fungsi untuk mengatur proyeksi hasil eksekusi dan mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas
  • glColor yaitu suatu fungsi yang digunakan untuk mengatur warna pada objek.
Fungsi warna :
  1. glColor3f (0,0,0); //black
  2. glColor3f 0,0,1); //blue
  3. glColor3f (0,1,0); ..green
  4. glColor3f (0,1,1); //cyan
  5. glColor3f (1,0,0) ; //red
  6. glColor3f (1,0,1); //magenta
  7. glColor3f (1,1,0); //yellow
  8. glColor3f (1,1,1); //white
Listing Program membuat Layang-layang :

#include <stdlib.h>
#include <glut.h>

void segiEmpat(int posx,int posy,int w, int h){
       glBegin(GL_QUADS);
              glVertex2i(posx,posy);// posisi A
              glVertex2i(posx+w,posy-h);// posisi B
              glVertex2i(posx,posy-3*h);// posisi C
              glVertex2i(posx-w,posy-h);// posisi D

       glEnd();
}

void renderScene(void){
       glClear(GL_COLOR_BUFFER_BIT);
       glColor3f(0,1,0); //hijau
       segiEmpat(-180,130,90,90);
glColor3f(1,0,0); //merah
       segiEmpat(0,130,90,90);
       glColor3f(1,1,0); //kuning
       segiEmpat(180,130,90,90);
       glFlush();
}
      
void main(int argc,char **argv){
       glutInit(&argc,argv);
       glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE |GLUT_RGBA);
       glutInitWindowPosition(100,200);
       glutInitWindowSize(320,240);
       glutCreateWindow("LAYANG - LAYANG");
       gluOrtho2D(-320,320,-240,240);
       glutDisplayFunc(renderScene);
       glutMainLoop();
}

Hasil :



Load disqus comments

0 comments