Halo, teman-teman developer! 👋
Pada postingan kali ini, saya ingin berbagi tutorial sederhana mengenai cara menampilkan bentuk 3D lingkaran dalam sumbu X, Y, dan Z menggunakan OpenGL dengan IDE Code::Blocks.
🧩 Apa yang Kita Buat?
Kita akan membuat tiga buah lingkaran yang berada di tiga bidang berbeda:
-
Circlex → Berada di bidang XZ
-
Circley → Berada di bidang YZ
-
Circlez → Berada di bidang XY
Dengan begitu, bentuk tersebut akan tampak seperti kerangka bola (globe wireframe), karena lingkaran berpotongan di pusat koordinat (0, 0, 0).
🛠️ Tools yang Digunakan
-
IDE: Code::Blocks
-
Compiler: MinGW
-
Library: OpenGL (
GL/glut.h
)
💡 Cuplikan Kode Program
Berikut adalah kode lengkap untuk menampilkan bentuk 3D lingkaran:
#include<windows.h>
#include<GL/glut.h>
#include <math.h>
#define PI 3.14
int jumlah_titik = 100;
void Circlex(GLfloat px, GLfloat py, GLfloat pz, GLfloat r){
GLint i;
GLdouble sudut;
glBegin(GL_LINE_STRIP);
for (i=0; i<jumlah_titik; i++)
{
sudut = 2*PI*i/jumlah_titik;
glColor3f(0,0,0);
glVertex3f(px+r*cos(sudut), py, pz+r*sin(sudut));
}
glEnd();
}
void Circley(GLfloat px, GLfloat py, GLfloat pz, GLfloat r){
GLint i;
GLdouble sudut;
glBegin(GL_LINE_STRIP);
for (i=0; i<jumlah_titik; i++)
{
sudut = 2*PI*i/jumlah_titik;
glColor3f(1,0,0);
glVertex3f(px, py+r*cos(sudut), pz+r*sin(sudut));
}
glEnd();
}
void Circlez(GLfloat px, GLfloat py, GLfloat pz, GLfloat r){
GLint i;
GLdouble sudut;
glBegin(GL_LINE_STRIP);
for (i=0; i<jumlah_titik; i++)
{
sudut = 2*PI*i/jumlah_titik;
glColor3f(0,0,1);
glVertex3f(px+r*cos(sudut), py+sin(sudut), pz);
}
glEnd();
}
void Display() {
glClear (GL_COLOR_BUFFER_BIT);
// Sumbu Koordinat
glBegin(GL_LINES);
glColor3f(0,1,0); glVertex3f(-3,0,0); glVertex3f(4,0,0); // X
glColor3f(0,1,1); glVertex3f(0,-2.5,0); glVertex3f(0,3.5,0); // Y
glColor3f(1,1,0); glVertex3f(0,0,-9); glVertex3f(0,0,4); // Z
glEnd();
// Tiga Lingkaran
Circlex(0,0,0,1.5);
Circley(0,0,0,1.5);
Circlez(0,0,0,1.5);
glFlush();
}
void reshape(int w, int h){
glViewport(0,0,(GLsizei)w, (GLsizei)h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(55, (GLfloat) w/h, 0, 20);
gluLookAt(0,0,2,0,0,-200,0,1,0);
}
void init(void){
glClearColor(1,1,1,1); // latar putih
}
int main(int argc, char *argv[]){
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,400);
glutInitWindowPosition(500, 200);
glutCreateWindow("TM9 - Lingkaran 3D");
init();
glutDisplayFunc(Display);
glutReshapeFunc(reshape);
glutMainLoop();
}
🎨 Hasil Tampilan
Program akan menampilkan sumbu X (merah), Y (cyan), dan Z (kuning), serta tiga lingkaran yang saling berpotongan. Kombinasi ketiganya menciptakan kesan bentuk bola 3D yang sangat sederhana, namun berguna untuk pemahaman awal tentang transformasi dan koordinat dalam OpenGL.
📌 Kesimpulan
Dengan hanya beberapa fungsi dasar OpenGL dan sedikit matematika, kita bisa membuat bentuk geometris 3D yang menarik. Teknik seperti ini bisa dikembangkan lebih lanjut untuk membuat bola, torus, silinder, atau visualisasi lainnya.
Jika kamu baru belajar OpenGL, ini adalah latihan yang bagus untuk memahami koordinat 3D, proyeksi perspektif, dan menggambar bentuk menggunakan titik-titik.
Semoga bermanfaat!
Kalau kamu suka dengan tutorial seperti ini, jangan lupa bookmark dan share ya! ✨
Komentar
Posting Komentar