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 ☺