Belajar Menggeser Objek Segiempat dengan OpenGL di Code::Blocks

 Halo, teman-teman! ๐Ÿ‘‹

Kali ini kita akan membahas cara sederhana untuk menggeser objek (segiempat) menggunakan OpenGL dan bahasa C++ di Code::Blocks. Teknik ini merupakan dasar dari transformasi objek dalam grafik komputer, yang sangat berguna dalam animasi maupun interaksi visual.


Apa yang Akan Kita Buat?

Kita akan menggambar dua buah segiempat berwarna biru:

  • Satu segiempat akan berada di posisi awal.

  • Segiempat kedua akan digeser ke kanan menggunakan fungsi glTranslatef().


Kode Program Lengkap

cpp
// Menggeser obyek segi4 #include<windows.h> #include<gl\glut.h> void Display(){ glClear(GL_COLOR_BUFFER_BIT); // Gambar segiempat pertama (posisi awal) glColor3f(0.0,1.0,0.0); // Warna hijau glRectf(80.,10.,150.,30.); // Koordinat persegi panjang // Geser dan gambar segiempat kedua (digeser ke kanan) glColor3f(0.0,0.0,1.0); // Warna biru glTranslatef(80.,0.,0.); // Geser 80 satuan ke kanan glRectf(80.,10.,150.,30.); // Gambar persegi panjang lagi glFlush(); } void reshape(int w, int h){ gluOrtho2D(0.0,320.0,0.0,240.0); // Atur sistem koordinat } void init(){ glClearColor(1.0,0.0,0.0,1.0); // Latar belakang merah } int main(int args,char* argv[]){ glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutInitWindowSize(320,240); // Ukuran window glutCreateWindow("My First OpenGL Window"); // Judul window init(); glutDisplayFunc(Display); glutReshapeFunc(reshape); glutMainLoop(); }
Codeblocks,Komputer Grafik,

Penjelasan Program

  • glRectf(x1, y1, x2, y2) → Menggambar segiempat dari titik (x1, y1) ke (x2, y2).

  • glTranslatef(x, y, z) → Menerapkan transformasi translasi (geser posisi).

    • Nilai positif x → geser ke kanan.

    • Nilai negatif x → geser ke kiri.

    • Nilai y → geser ke atas atau bawah.

  • glClearColor() → Mengatur warna latar belakang.

  • glColor3f(r, g, b) → Mengatur warna objek.

  • glFlush() → Menampilkan hasil render ke layar.


Eksperimen Sendiri

Kamu bisa mencoba mengubah baris berikut untuk melihat perbedaan:

cpp
glTranslatef(80.,0.,0.); // Geser ke kanan

Menjadi salah satu dari:

cpp
glTranslatef(-80.,0.,0.); // Geser ke kiri glTranslatef(0.,50.,0.); // Geser ke atas glTranslatef(0.,-50.,0.); // Geser ke bawah

Catatan Penting

  • Fungsi glTranslatef() mempengaruhi semua objek setelah pemanggilan fungsi tersebut.

  • Jika ingin mengatur ulang transformasi atau mencegah efek berlanjut ke objek lain, gunakan glPushMatrix() dan glPopMatrix().


Penutup

Dengan memahami translasi objek menggunakan glTranslatef, kamu sudah mengambil langkah awal dalam dunia transformasi grafik! Ini sangat penting untuk membuat objek bergerak atau berpindah tempat.

Silakan dicoba, dimodifikasi, dan dikembangkan jadi animasi atau game 2D sederhana! ๐ŸŽฎ

Komentar