Tutorial OpenGL: Memutar Objek Beberapa Derajat dengan glRotatef di Code::Blocks

Hai teman-teman pecinta grafika komputer! ๐Ÿ‘‹

Pada postingan kali ini, kita akan membahas bagaimana cara memutar sebuah objek (segiempat) menggunakan OpenGL dan fungsi glRotatef. Proyek ini cocok untuk kamu yang ingin memahami dasar transformasi rotasi dalam grafika 2D.


๐ŸŽฏ Apa yang Akan Kita Lakukan?

Kita akan:

  • Menggambar sebuah persegi panjang hijau sebagai objek awal.

  • Memutar objek tersebut sebesar 45 derajat terhadap sumbu Z menggunakan fungsi glRotatef.


๐Ÿง  Konsep Penting: Fungsi glRotatef

glRotatef(angle, x, y, z);
  • angle: sudut rotasi (dalam derajat)

  • x, y, z: sumbu rotasi

    • (0, 0, 1) artinya rotasi di bidang 2D (sekitar sumbu Z)


๐Ÿ’ป Kode Program Lengkap

// Memutar obyek beberapa derajat
#include<windows.h>
#include<gl\glut.h>

void Display(){
    GLint i;
    glClear(GL_COLOR_BUFFER_BIT);

    // Gambar persegi panjang awal (tanpa rotasi)
    glColor3f(0, 1, 0);  // Hijau muda
    glRectf(80, 10, 200, 20);

    // Terapkan rotasi 45 derajat terhadap sumbu Z
    glLoadIdentity();
    glRotatef(45, 0, 0, 1); // Sudut rotasi, sumbu Z
    glColor3f(1, 0, 1);     // Warna ungu (bisa ubah untuk membedakan)
    glRectf(80, 10, 200, 20);

    glutSwapBuffers();
    glutPostRedisplay();
    glFlush();
}

void reshape(int w, int h){
    glViewport(0, 0, (GLsizei)w, (GLsizei)h);
    glMatrixMode(GL_PROJECTION);
    gluOrtho2D(0, 320, 0, 240); // Koordinat 2D
    glMatrixMode(GL_MODELVIEW);
}

void init(){
    glClearColor(1.0, 0.0, 0.0, 1.0); // Latar belakang merah
}

int main(int args, char* argv[]){
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutInitWindowSize(320, 240);
    glutCreateWindow("Memutar Obyek Beberapa Derajat");
    init();
    glutDisplayFunc(Display);
    glutReshapeFunc(reshape);
    glutMainLoop();
}
Codeblocks,Komputer Grafik,

๐Ÿ” Penjelasan Program

  • glRectf(80,10,200,20) menggambar persegi panjang di posisi awal.

  • glRotatef(45, 0, 0, 1) memutar persegi panjang sebesar 45 derajat di bidang 2D.

  • glLoadIdentity() memastikan transformasi sebelumnya direset sebelum memutar.

  • glutSwapBuffers() digunakan karena kita memakai mode GLUT_DOUBLE (double buffering).

  • glutPostRedisplay() membuat jendela terus menggambar ulang (berguna untuk animasi rotasi dinamis).


๐Ÿ“ Catatan Penting

  • Transformasi seperti rotasi akan berlaku pada semua objek yang digambar setelah fungsi glRotatef dipanggil.

  • Untuk efek visual lebih menarik, kamu bisa menggambar objek yang sudah diputar dengan warna berbeda seperti ungu agar perbandingan rotasi terlihat jelas.


๐Ÿงช Eksperimen Lanjut

  • Ubah nilai sudut glRotatef() jadi 90, 180, atau -45 untuk melihat hasil berbeda.

  • Kombinasikan dengan glTranslatef() untuk melihat bagaimana objek diputar dari posisi tertentu.

  • Tambahkan input keyboard untuk memutar objek secara interaktif!


๐Ÿ Kesimpulan

Dengan menggunakan glRotatef, kamu bisa dengan mudah memutar objek dalam grafika komputer 2D menggunakan OpenGL. Ini adalah dasar yang sangat penting sebelum masuk ke animasi 3D atau simulasi fisika!

Selamat mencoba dan semoga berhasil! ๐Ÿ”ง✨
Kalau kamu tertarik untuk belajar animasi atau interaksi mouse & keyboard di OpenGL, komen aja ya!

Komentar