Membuat Gambar Titik Menggunakan OpenGL dalam Bahasa C

Codeblocks,Komputer Grafik

OpenGL adalah sebuah API yang digunakan untuk membuat aplikasi grafis 2D dan 3D. Dalam artikel ini, kita akan membahas tentang bagaimana membuat gambar titik menggunakan OpenGL dengan bahasa pemrograman C. Program ini akan menampilkan beberapa titik dengan warna hijau di dalam jendela OpenGL.

1. Persiapan dan Library yang Digunakan

Sebelum kita mulai menulis program, pastikan bahwa sistem Anda sudah terinstall dengan library yang diperlukan untuk menjalankan OpenGL, seperti glut.h dan windows.h. GLUT (OpenGL Utility Toolkit) digunakan untuk membuat jendela, menangani input, dan menggambar objek 3D dalam aplikasi OpenGL.

2. Struktur Program

Program ini terdiri dari beberapa fungsi utama, yaitu Display(), reshape(), dan init(). Fungsi utama yang akan dijalankan oleh GLUT adalah Display() untuk menggambar titik, reshape() untuk menyesuaikan ukuran jendela, dan init() untuk inisialisasi pengaturan awal OpenGL.

3. Keterangan Fungsi-Fungsi dalam Program

  • Display(): Fungsi ini bertugas untuk menggambar titik pada layar. Setiap titik diberi warna hijau, dan posisi titik diatur menggunakan fungsi glVertex2f(x, y).
  • reshape(): Fungsi ini digunakan untuk mengubah ukuran jendela agar grafik OpenGL dapat menyesuaikan ukuran tampilan ketika ukuran jendela berubah.
  • init(): Fungsi inisialisasi yang mengatur beberapa pengaturan awal, seperti warna latar belakang dan ukuran titik yang akan digambar.

4. Kode Program

#include<windows.h>
#include<gl\glut.h>

// Fungsi untuk menggambar titik
void Display() {
    glClear(GL_COLOR_BUFFER_BIT); // Membersihkan layar
    glBegin(GL_POINTS); // Menandakan bahwa kita menggambar titik

    // Menentukan warna titik hijau dan menggambar titik-titik
    glColor3f(0.0, 1.0, 0.0); // Warna hijau
    glVertex2f(50., 50.);
    glVertex2f(100., 100.);
    glVertex2f(150., 150.);
    glVertex2f(200., 200.);
    glVertex2f(250., 250.);
    glVertex2f(250., 300.);
    glVertex2f(250., 350.);
    glVertex2f(300., 250.);
    glVertex2f(350., 250.);
    glVertex2f(50., 450.);
    glVertex2f(100., 400.);
    glVertex2f(150., 350.);
    glVertex2f(200., 300.);
    glVertex2f(50., 450.);
    glVertex2f(200., 250.);
    glVertex2f(150., 250.);
    glVertex2f(450., 450.);
    glVertex2f(400., 400.);
    glVertex2f(350., 350.);
    glVertex2f(300., 300.);
    glVertex2f(450., 50.);
    glVertex2f(400., 100.);
    glVertex2f(350., 150.);
    glVertex2f(300., 200.);
    glVertex2f(250., 200.);
    glVertex2f(250., 150.);

    glEnd(); // Mengakhiri penggambaran titik
    glFlush(); // Menampilkan hasil gambar
}

// Fungsi untuk mengubah ukuran jendela
void reshape(int w, int h) {
    glViewport(0, 0, (GLsizei)w, (GLsizei)h); // Menyesuaikan tampilan
    glMatrixMode(GL_PROJECTION); // Mengatur proyeksi
    glLoadIdentity(); // Menghapus proyeksi lama
    gluOrtho2D(0.0, 500.0, 0.0, 500.0); // Mengatur rentang koordinat
}

// Fungsi inisialisasi
void init() {
    glClearColor(1.0, 0.0, 0.0, 1.0); // Mengatur warna latar belakang menjadi merah
    glPointSize(5.0); // Mengatur ukuran titik
}

// Fungsi utama
int main(int args, char* argv[]) {
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // Mode tampilan
    glutInitWindowSize(500, 500); // Ukuran jendela
    glutCreateWindow("Windows OpenGL Pertama Saya"); // Membuat jendela
    init(); // Inisialisasi
    glutDisplayFunc(Display); // Menetapkan fungsi display
    glutReshapeFunc(reshape); // Menetapkan fungsi reshape
    glutMainLoop(); // Memulai loop GLUT
}

5. Penjelasan Program

  • glBegin(GL_POINTS) dan glEnd(): Fungsi ini digunakan untuk menggambar objek titik (point). Setiap titik digambar menggunakan glVertex2f(x, y) dengan posisi yang berbeda.
  • glColor3f(r, g, b): Fungsi ini mengatur warna objek yang digambar. Pada contoh ini, warna yang digunakan adalah hijau (0.0, 1.0, 0.0).
  • gluOrtho2D(): Fungsi ini mengatur proyeksi 2D pada rentang koordinat tertentu. Dalam hal ini, rentang koordinat X dan Y diatur dari 0 hingga 500.
  • glutMainLoop(): Fungsi ini menjalankan loop GLUT yang akan terus menampilkan jendela dan menunggu perintah untuk menggambar.

6. Hasil yang Diharapkan

Program ini akan menampilkan jendela 500x500 piksel dengan beberapa titik hijau yang tersebar di dalamnya. Anda dapat melihat bagaimana setiap titik digambar pada posisi yang telah ditentukan di dalam kode program.

Codeblocks,Komputer Grafik

7. Kesimpulan

Dengan menggunakan OpenGL dan GLUT, kita bisa membuat aplikasi grafis sederhana untuk menggambar titik-titik atau objek lainnya. Dalam contoh ini, kita telah membuat aplikasi yang menampilkan beberapa titik berwarna hijau di layar. Program ini juga dapat dikembangkan untuk menggambar objek lain, seperti garis, segitiga, atau bentuk-bentuk lebih kompleks.

Komentar