Monday, October 29, 2012

Make a Line With openGL and Dev C++


Bagaimana cara membuat garis dengan menggunakan aplikasi OpenGL?

Saya mendapat tugas untuk membuat garis dengan menggunakan aplikasi OpenGL. Apa itu OpenGL? Ini saya berikan ppembahasan tentang OpenGL yang saya ambil dari wikipedia:

OpenGL (Open Graphics Library) adalah spesifikasi standar yang mendefinisikan sebuah lintas bahasa, lintas platform API untuk mengembangkan aplikasi yang menghasilkan grafis komputer 2D maupun 3D. Antarmuka terdiri dari lebih dari 250 panggilan fungsi yang berbeda yang dapat digunakan untuk menggambar tiga dimensi yang adegan-adegan kompleks dari bentuk-bentuk primitif sederhana. OpenGL dikembangkan oleh Silicon Graphics Inc (SGI) pada tahun 1992 dan secara luas digunakan dalam CAD, realitas maya, visualisasi ilmiah, visualisasi informasi, dan simulasi penerbangan. Hal ini juga digunakan dalam video game, di mana bersaing dengan Direct3D on Microsoft Windows platform). OpenGL dikelola oleh sebuah teknologi konsorsium nirlaba yaitu Khronos Group.

Untuk menggunakan aplikasi OpenGL, kita bisa menggunakan bebagai macam source, tetapi saya disini menggunakan Dev C++ yang saya gabungkan dengan GLUT OpenGL sebagai tambahan applikasi package didalam Dev C++ itu sendiri. Untuk menginstall package GLUT kedalam Dev C++ tidak akan saya jelaskan disini, mungkin lain kali akan saya jelaskan atau juga sebenarnya sudah banyak dijelaskan di internet tinggal kita mencarinya dari search engine seperti google.

Pertama saya akan membuat garis horizontal yang mempunyai inputan sebagai berikut:


Dan outputnya sebagai berikut:



Selanjutnya untuk inputan garis vertical:



Dan output dari garis vertical:


Dan terakhir untuk inputan dari garis diagonal:


Dan outputnya adalah:



Logika dari program tersebut adalah:

/* OpenGL animation code goes here */
Komentar diatas selalu ada saat kita menggunakan OpenGL, dimana dibawah komentar tersebut kita dapat menuliskan syntax untuk program OpenGL.

                /*Untuk membuat garis Vertikal*/
                glClearColor (0.0f, 0.0f, 0.0f, 0.0f);           
                glClear (GL_COLOR_BUFFER_BIT);

untuk baris satu dan dua diatas, kita menggunakan untuk memanggil perintah untuk membersihkan layar dan membuat background dari layar output tersebut menjadi hitam.

                glPushMatrix ();
                glClearColor(1,1,1,0);
    glColor3f(1,1,1);

baris tiga sampai lima untuk menentukan warna output dari garis yang akan kita buat.

                glBegin(GL_LINES);
    glVertex3f(0.10,10.0,13.13);
    glVertex3f(0,0,0.0);

untuk baris enam sampai dengan delapan, kita menggunakan perintah tersebut unutk memulai menggambar garis dan untuk menentukan titik awal dan akhir dari garis akan akan digambar.

                glEnd (); /*untuk mengakhiri gambar garis dititik akhir*/

untuk baris Sembilan ini kita gunakan untuk akhir dari gambar gais tersebut dimana akan berakhir pada titik akhir yang sudah kita tentukan pada baris sebelumnya.          

                glPopMatrix ();
    SwapBuffers (hDC);
                Sleep (1);

Untuk garis horizontal dan diagonal sebenarnya ssama logikana seperti pada garis vertical diatas, hanya ssaja ada perubahan penentuan titik pada baris enam sampai delapan, dimana untuk garis horizontal:

    glVertex3f(-0.6f, 0.0f, 0.0f);
                glColor3f(0.0f, 0.0f, 1.0f);
                glVertex3f(0.6f, 0.0f, 0.0f);

dan untuk gariss diagonal:

    glBegin(GL_LINES);
                glVertex3f(0, 0, -0.8);
                glVertex3f(9.9, 8.9, 0.1);