Follow Me

Primitive Drawing menggunakan C++

Primitive Drawing merupakan cara mudah untuk menggambar pada layar monitor menggunakan teori geometri sederhana. Macam-macam primitive drawing seperti menggambar sebuah titik, garis, atau gabungan antar keduanya.
Berikut akan aku share beberapa script tentang primitive drawing dalam bahasa C++

1. Membuat segitiga sama kaki.

Berikut adalah scriptnya :
void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada  */
glClear (GL_COLOR_BUFFER_BIT);
/* gambar poligon (rectangle) dengan titik sudut  *
* (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)  */
glColor3f (1.0, 1.0, 0.0);

/////////pembentuk segitiga sama kaki/////
glBegin(GL_LINE_LOOP);
glVertex3f (0.0, 0.0, 0.0); 
glVertex3f (0.3, 0.8, 0.0); 
glVertex3f (0.6, 0.0, 0.0); 
glEnd(); 
/////////pembentuk segitiga sama kaki///////

glFlush (); } 
void kunci(unsigned char key, int x, int y) { 
switch (key)  { 
case 27 :  case 'q': exit(0); break; } glutPostRedisplay(); } 
int main(int argc, char *argv[]) { 
glutInitWindowSize(200,200);                      
glutInitWindowPosition(100,100);                
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);     
glutCreateWindow("UMI FATIMAH");                 
glutDisplayFunc(display);      
glutKeyboardFunc(kunci);         
glutMainLoop(); 
return 0;  
 }
Script berikut :

glBegin(GL_LINE_LOOP);
glVertex3f (0.0, 0.0, 0.0); 
glVertex3f (0.3, 0.8, 0.0); 
glVertex3f (0.6, 0.0, 0.0); 
glEnd(); 

Dapat diganti dengan :
glBegin(GL_LINE_LOOP);
glVertex2f (0.0, 0.0);
glVertex2f (0.3, 0.8);
glVertex2f (0.6, 0.0);
glEnd();

glVertex2f disini menunjukan bahwa koordinat titik menggunakan tipe data float karena berupa pecahan. dan jika koordinat tidak menggunakan bilangan pecahan maka tipe datanya dapat menggunakan int. sedangkan angka 2 menunjukan titik tersebut terbentuk dari 2 koordinat yaitu x dan y. jika 3 berarti terbentuk dari x, y, dan z.

2. Membuat bentuk kubus

Sebenernya sama aja dengan pembuatan bentuk segitiga tadi, kita seperti hanya bermain koordinat cartesius saja. Untuk membuat bentuk kubus kita bisa mengganti script yang berwarna merah dengan script berikut :
/////////pembentuk kubus////////

glBegin(GL_LINE_LOOP);
glVertex3f (0.0, -0.9, 0.0);
glVertex3f (0.0, -0.4, 0.0);
glVertex3f (0.5, -0.4, 0.0);
glVertex3f (0.5, -0.9, 0.0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f (0.3, -0.5, 0.0);
glVertex3f (0.3, -0.1, 0.0);
glVertex3f (0.8, -0.1, 0.0);
glVertex3f (0.8, -0.5, 0.0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f (0.0, -0.4, 0.0);
glVertex3f (0.3, -0.1, 0.0);
glVertex3f (0.8, -0.1, 0.0);
glVertex3f (0.5, -0.4, 0.0);
glEnd();  
glBegin(GL_LINE_LOOP);
glVertex3f (0.0, -0.9, 0.0);
glVertex3f (0.3, -0.5, 0.0);
glVertex3f (0.8, -0.5, 0.0);
glVertex3f (0.5, -0.9, 0.0);
glEnd();

/////////pembentuk kubus////////

script diatas sebenarnya cuma akal-akalan doank, bagaimana beberapa bidang disatukan menjadi bentuk seperti kubus. Membentuk suatu kubus sebenarnya bisa dibuat dengan permainan garis menggunakan gl_LINE_LOOP, namun yang perlu diingat adalah bahwa gl_LINE_LOOP menghubungkan titik-titik secara berurutan, jadi agar titik-titik dapat disatukan menggunakan garis sehingga membentuk suatu kubus, maka titik-titik tersebuat harus dibuat berdasarkan urutan yang benar.

3. Membuat warna pelangi


Seperti yang kita tahu warna pelangi ada 7 macam. yang kita kenal mejikuhibiniu.
di dalam pemrograman C++ kita memiliki RGB (Red, Green, Blue).
Warna-warna tersebut dapat dikombinasikan menjadi 7 warna pelangi berdasarkan komposisi warna sebagai berikut :
Merah : R (1.0)
Jingga : R (1.0) G (1.0) B (0.5)
Kuning : G (1.0) B (1.0 B (0.5)
Hijau : G (1.0)
Biru : B (1.0)
Nila : R (1.0) B (0.5)
Ungu : R (1.0) B (1.0)
Nah, untuk memunculkan warna pelangi diatas aku menggunakan garis yang diatur kelebarannya menggunakan glLineWidth(20); garis-garis tersebut terbentuk dari titik yang dihubungkan menggunakan gl_LINE_STRIP.
Untuk scriptnya sama kayak pembuatan bentuk segitiga dan kubus, tinggal diganti script yang warna merah dengan script berikut :

//////pembentuk warna pelangi//////
glBegin(GL_LINE_STRIP);
glColor3f (1.0, 0.0, 0.0);
glVertex3f (-0.1, 0.4, 0.0);
glColor3f (1.0, 1.0, 0.0);
glVertex3f (-0.1, 0.2, 0.0);
glColor3f (1.0, 1.0, 0.5);
glVertex3f (-0.1, 0.0, 0.0);
glColor3f (0.0, 1.0, 0.0);
glVertex3f (-0.1, -0.2, 0.0);
glColor3f (0.0, 0.0, 1.0);
glVertex3f (-0.1, -0.4, 0.0);
glColor3f (1.0, 0.0, 0.5);
glVertex3f (-0.1, -0.6, 0.0);
glColor3f (1.0, 0.0, 1.0);
glVertex3f (-0.1, -0.8, 0.0);
glEnd();
//////pembentuk warna pelangi//////

Begitulah sedikit tugas grafika komputerku mengenai primitiv drawing.
To Be continued for next task :D
Previous
Next Post »