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();
}
๐ 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 modeGLUT_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
Posting Komentar