Pages

Senin, 03 November 2014

Menu Garis dengan OpenGL

Menu Membuat Garis dengan menggunaan OpenGL

Pada kesempatan kali ini saya ingin membahas tentang membuat menu garis vertikal, horizontal, dan diagonal dengan berbasis OpenGL. Membuat program ini saya menggunakan Code Blocks, dan Library OpenGL yaitu Glut.h sebagai header pada pemrograman di Code Blocks yang saya pilih berbasis C++.
Pertama-tama, cara untuk instalasi Code Blocks serta Glut dapat dilihat di:
Oke langsung saja. Pertama buat terlebih dahulu New Project, dan pilih dalam bentul Console Application, seperti dibawah ini:



Kemudian pilih bahasa pemrograman yang akan digunakan, disini saya pilih mengunakan bahasa C++.






Setelah itu berikan nama untuk new project yang akan dibuat dan tempat / direktori dimana project akan di save. Saya memberikan nama MenulineOGL, dan disave didalam my document.

Setelah menentukan nama dan direktori untuk men-save program, lalu tekan next, dan finish.




Lalu, mulai dengan coding yang akan digunakan untuk membuat menu  line opengl . Coding nya adalah dibawah ini:

Pada Gambar coding pertama terdapat 3 header yang digunakan dan di include. Pertama ada GL/Glut.h yang memiliki fungsi untuk menjalankan seluruh fasilitas yeng terdapat pada openGL. Selanjutnya ada conio.h dan iostream yaitu header utama pada bahasa pemrograman C++.
Void cls yang berguna jika sub main ini dipanggil, maka akan menjalankan yang ada didalam nya, yaitu cout << string(25, ‘\n’) yaitu menampilkan new space line sebanyak 25 line.
Terdapat juga int tx0, ty0,tx1,ty1; int k; yang memiliki fungsi membuat variabel tx0, ty0, tx1, ty1 dan k dengan tipe data integer. Void init(void) yaitu membuat sub main yang berisi glClearColor yang berguna untuk membuat tampilan openGL dengan warna dasar hitam dengan format warna RGBA (Red Green Blue Alpha). Kemudian ada glMatrixMode membuat mode untuk tampilan openGL yaitu GL_PROJECTION yang digunakan untuk menempatkan dan membentuk garis dengan titik-titik koordinat yang nanti akan diinput. gluOrtho2d adalah untuk mensetting sumbu x dan y yang akan kita buat, disini saya mensetting nya dengan minimal bernilai -50 dan maksimal 50.

Digambar kedua ini terdapat void display(void) yaitu memiliki fungsi membuat sub main display atau yang nantinya akan berguna untuk hasil output. Terdapat glClear yang digunakan untuk membuat setting warna dasar, lalu glColor3f yaitu untuk setting warna garis nanti yang akan ditampilkan, glLineWidth(7.0f) yaitu menentukan ketebalan garis yang akan tampil.
glBegins(GL_LINES) yaitu untuk menentukan hasil outputnya, karna ingin membuat garis maka pilih GL_LINES. glVertex2d(tx0,ty0) glVertex2d untuk menentukan titik awal yang akan kita input, 2d adalah untuk keterangan garis yang akan dibuat adalah bentuk 2d. Dan titik awal diambil dari nilai variabel tx0 dan ty0. glVertex2d(tx1,ty1) sama seperti sebelumnya, hanya saja titik ini digunakan untuk menentukan titik akhir dari garis yang akan dibuat.
glEnd untuk membuat statement akhir program. Dan glFlush untuk menampilkan apa yang sudah diinput sebelumnya.


Int main, ini adalah inti dari program yag akan dibuat. Didalam sini terdapat coding atau statement apa saja yang akan tampil saat program dijalankan. K= 0 berguna untuk menentukan nilai awal variabel K yaitu 0. Cls() berguna untuk menjalankan sub main yang sebelumnya sudah dibuat.
Int pil; untuk membuat variabel pil dengan tipe data integer. Dan cout<< berguna untuk mencetak kalimat yang ada didalam tanda “.....”. Kemudian cin>>pil; digunakan untuk statement input yang berguna untuk mengarahkan kemana program akan dijalankan nantinya, apakah garis vertikal, horizontal, atau diagonal, ataupun Keluar. Switch(pil) berguna untuk input yang sudah diinputkan kemudian diarahkan ke program.


Case 1: case 2: case 3: case 4: digunakan untuk arahan dari input pil yang sebelumnya diinput. Case ini akan menjalankan program sesuai yang terdapat pada menu, case 1 berguna untuk menjalankan statement input kemudian menjalankan kondisi untuk program vertikal, case 2 untuk program horizontal, case 3 untuk program diagonal, dan case 4 untuk keluar dari program. Setiap case selalu diakhiri dengan break; kemudian terdapat default yang berguna untuk memberikan pilihan lain jika yang diinput melebihi atau tidak terdapat pada menu.



GlutInit berguna untuk membuat setting dari windows yang akan tampil untuk menampilkan garis yang sebelumnya sudah ditentukan titik koodintnya. Disini terdapat setting untuk mengatur besar dari windows nya yaitu 500x500 piksel, Menentukan “Hasil Garis” sebagai nama dari hasil output yang akan dihasilkan, dan digunakan untuk memenggil sub main display.
Void inputpart() adalah membuat sub main yangberguna untuk menginput nilai titik awal dari x, dan y. Kemudian menentukan nilai dari variabel tx1 dan ty1 untuk garis akhir.


Int inputpart2() menjadi sub main dan juga variabel input dan terusan dari bagian inputpart. Disini terdapat setting untuk membuat nilai maksimal dan minimal titik yaitu -50 dan 50.
Void horizonif() yaitu membuat sub main kondisi untuk garis horizontal, jadi, jika nilai dari nilai ty0 (nilai y awal) dan ty1 (nilai akhir titik y) sama, maka akan menampilkan hasil garis nya bahwa garis nya adalah garis horizontal. Dan jika tidak membentuk garis yang ditentukan maka akan melanjutkan ke menu kembali.



Pada submain vertikaif() dan diagonaif() sama seperti membuat garis horizontal, hanya saja untuk garis vertikal memiliki kondisi nilai tx0 (nilai titik awal x) dan tx1 (nilai titik akhir x) sama maka akan menampilkan garis vertikal. Namun untuk bagian digonal sama sekali tidak memiliki kondisi.


Setelah semuanya selesai, jalankan program. Jika ingin dijadikan .exe maka bisa dipilih build. Setelah di build maka akan seperti dibawah ini:






Dan saat program dijalankan akan seperti ini:












Atau dapat anda download dalam bentuk pdf di sini

 
Sekian penjelasan program dari saya, terima kasih 





 
Blogger Templates