OpenGL adalah salah satu pustaka grafik yang digunakan untuk membuat tampilan grafis 2D dan 3D pada berbagai platform. Salah satu bahasa pemrograman yang umum digunakan untuk bekerja dengan OpenGL adalah C++. Artikel ini akan membahas contoh program C++ menggunakan OpenGL untuk membuat tampilan grafis dasar berupa titik-titik yang membentuk dua garis simetris.
Persiapan Awal
Sebelum kita masuk ke dalam kode, ada beberapa hal yang perlu dipersiapkan agar program OpenGL dapat berjalan dengan lancar:
-
Instalasi OpenGL dan GLUT:
- Pastikan sistem Anda sudah terpasang OpenGL dan GLUT (OpenGL Utility Toolkit).
- GLUT digunakan untuk memudahkan pembuatan antarmuka grafis dan pengelolaan jendela dalam aplikasi berbasis OpenGL.
-
Penyusunan Program:
- Dalam program ini, kita akan membuat jendela grafis yang menampilkan dua garis simetris, yaitu dengan menggunakan titik-titik yang diletakkan pada posisi tertentu di dalam ruang 2D.
Penjelasan Kode
Berikut adalah contoh kode C++ untuk program OpenGL yang menggambar dua garis simetris:
#include<windows.h>
#include<gl\glut.h>
void Display(){
int x, y, y1;
glClear(GL_COLOR_BUFFER_BIT); // Membersihkan layar dengan warna latar
glBegin(GL_POINTS); // Memulai menggambar titik-titik
for(x=1; x<241; x++){
y = x; // Titik y untuk garis pertama
y1 = 241 - x; // Titik y untuk garis kedua (simetris)
glVertex2f(x, y); // Menggambar titik pertama
glVertex2f(x, y1); // Menggambar titik kedua
}
glEnd(); // Mengakhiri menggambar titik
glFlush(); // Menyegarkan tampilan
}
void reshape(int w, int h)
{
gluOrtho2D(0.0, 240.0, 0.0, 240.0); // Menentukan koordinat 2D
}
void init()
{
glClearColor(1.0, 0.0, 0.0, 1.0); // Mengatur warna latar belakang (merah)
glPointSize(5.0); // Menentukan ukuran titik
}
int main(int args, char* argv[])
{
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // Mengatur mode tampilan
glutInitWindowSize(240, 240); // Menentukan ukuran jendela
glutCreateWindow("Windows OpenGL Pertaman Saya"); // Membuat jendela aplikasi
init(); // Inisialisasi pengaturan
glutDisplayFunc(Display); // Mengatur fungsi untuk menggambar tampilan
glutReshapeFunc(reshape); // Mengatur fungsi untuk merubah ukuran jendela
glutMainLoop(); // Memulai loop utama program
}
Penjelasan Fungsi dalam Program
-
Display()
: Fungsi ini digunakan untuk menggambar tampilan grafis di jendela. Di dalam fungsi ini, titik-titik digambar menggunakan fungsiglVertex2f(x, y)
pada dua garis simetris yang dihasilkan oleh perulanganfor
. Setiap iterasi menggambar dua titik pada posisix, y
danx, y1
. -
reshape(int w, int h)
: Fungsi ini mengatur proyeksi koordinat 2D agar sesuai dengan ukuran jendela yang diubah.gluOrtho2D()
digunakan untuk menentukan batasan koordinat agar objek yang digambar tetap terlihat dengan jelas. -
init()
: Fungsi inisialisasi yang digunakan untuk mengatur pengaturan awal OpenGL, seperti warna latar belakang dan ukuran titik.glClearColor(1.0, 0.0, 0.0, 1.0)
mengatur latar belakang menjadi merah, sementaraglPointSize(5.0)
mengatur ukuran titik yang akan digambar. -
main()
: Fungsi utama untuk mengatur mode tampilan OpenGL, membuat jendela aplikasi, dan menghubungkan fungsi-fungsi yang sudah dibuat ke dalam program utama.glutMainLoop()
digunakan untuk memulai siklus perulangan di mana OpenGL akan terus memperbarui tampilan berdasarkan input pengguna.
Hasil Program
Program ini akan menghasilkan sebuah jendela yang menampilkan dua garis simetris, masing-masing terdiri dari titik-titik yang diposisikan secara vertikal. Satu garis akan berada di atas garis tengah, sementara garis lainnya akan berada di bawah garis tengah.
Kesimpulan
Dengan menggunakan OpenGL dan C++, Anda dapat membuat tampilan grafis yang dapat disesuaikan dengan kebutuhan Anda. Dalam contoh ini, kita hanya menggambar dua garis simetris, tetapi konsep yang sama dapat digunakan untuk menggambar objek grafis yang lebih kompleks. OpenGL menyediakan berbagai fungsi yang sangat berguna dalam pembuatan aplikasi grafis, baik untuk aplikasi 2D maupun 3D.
Jika Anda tertarik untuk belajar lebih lanjut, Anda bisa memperdalam pemahaman tentang OpenGL dan menambahkan elemen-elemen interaktif lainnya seperti kontrol input dari pengguna atau pengaturan animasi.
Komentar
Posting Komentar