Translasi 3D OpenGL di C++

#include <GL/glut.h>
float x=0.5, y=0.5, z=0.5;
//=======================================================
void tampilan(){
glClear(GL_COLOR_BUFFER_BIT); // Menghapus layar

glBegin(GL_LINE_LOOP);
glVertex3f(0,0,0);
glVertex3f(x,0,0);
glVertex3f(x,y,0);
glVertex3f(0,y,0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(0,0,0);
glVertex3f(0,0,z);
glVertex3f(0,y,z);
glVertex3f(0,y,0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(x,y,0);
glVertex3f(x,y,z);
glVertex3f(x,0,z);
glVertex3f(x,0,0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(0,0,0);
glVertex3f(0,0,z);
glVertex3f(x,0,z);
glVertex3f(x,0,0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(x,y,0);
glVertex3f(x,y,z);
glVertex3f(0,y,z);
glVertex3f(0,y,0);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f(0,y,z);
glVertex3f(x,y,z);
glVertex3f(x,0,z);
glVertex3f(0,0,z);
glEnd();

glBegin(GL_POLYGON);
glColor3f(1,0.5,1);
glVertex2f(-0.1,-0.1);
glVertex2f(-0.5,-0.1);
glVertex2f(-0.5,-0.5);
glVertex2f(-0.1,-0.5);
glEnd();

glEnd();

Sleep(10);
glRotatef(1,0,0,1);
glRotatef(1,1,0,0);
glutPostRedisplay();

glFlush();
}

void tekanKeyboard(unsigned char key, int x, int y){
if(key==’a’)
glTranslatef(-0.5,0,0);

if(key==’d’)
glTranslatef(0.5,0,0);

if(key==’w’)
glTranslatef(0,0.5,0);

if(key==’s’)
glTranslatef(0,-0.5,0);

if(key == ‘z’)
glRotatef(5, 0, 0, 1);

if(key == ‘x’)
glRotatef(5, 1, 0, 0);

if(key == ‘c’)
glRotatef(5, 0, 1, 0);

glutPostRedisplay();
}
//=======================================================
int main(int argc, char** argv){
glutInit(&argc,argv);
glutInitWindowPosition(200,300);
glutInitWindowSize(500,500);
glutCreateWindow(“Dasar-dasar OpenGL dan glut “);
glutDisplayFunc(tampilan);
//glClearColor(1,1,1,0);
//gluOrtho2D(-250,250,-250,250);
glutKeyboardFunc(tekanKeyboard);
glutMainLoop();
return 0;
}
//=======================================================

Translasi 2D OpenGL di C++

#include <GL/glut.h>
float posisiY=0;
float posisiX=0;
bool turun = true;
bool jalan = false;
bool putar=false;
//=======================================================
void tampilan(){
glClear(GL_COLOR_BUFFER_BIT); // Menghapus layar
glBegin(GL_LINES);
glColor3f(0,1,0); // memberi warna
glVertex2f(0,-250);
glVertex2f(0,250);
glVertex2f(-250,0);
glVertex2f(250,0);
glVertex2f(250,250);
glVertex2f(-250,-250);
glVertex2f(-250,250);
glVertex2f(250,-250);
glEnd();

glBegin(GL_POLYGON);
glColor3f(1,0.5,1);
glVertex2f(posisiX,posisiY);
glVertex2f(posisiX+50,posisiY);
glVertex2f(posisiX+50,50+posisiY);
glVertex2f(posisiX,50+posisiY);
glEnd();

// timer
Sleep(20); // per 100 milidetik
if(jalan){
if(turun){
posisiY = posisiY – 5;
}
else{
posisiY = posisiY + 5;
}
}

if(posisiY == -250){
turun = false;
}
if(posisiY == 250-50){
turun = true;
}

if(putar){
glRotatef(10,0,0,10);
}

glutPostRedisplay();
glFlush();
}

void tekanKeyboard(unsigned char key, int x, int y){
if(key==’q’)
exit(0);

if(key==’w’&&posisiY<250-50)
posisiY=posisiY+50;

if(key==’s’&&posisiY>-250)
posisiY=posisiY-50;

if(key==’d’&&posisiX<250-50)
posisiX=posisiX+50;

if(key==’a’&&posisiX>-250)
posisiX=posisiX-50;

if(key == ‘j’)
jalan = true;

if(key == ‘k’)
jalan = false;

// rotasi
if(key == ‘z’){
glRotatef(90, 0, 0, -250);
}
if(key == ‘x’){
glRotatef(-10, 0, 0, 10);
}
if(key == ‘c’){
glRotatef(10, 0, 0, 0);
}

//putar
if(key == ‘p’){
putar=true;
}

//glutPostRedisplay();
}
//=======================================================
int main(int argc, char** argv){
glutInit(&argc,argv);
glutInitWindowPosition(400,200);
glutInitWindowSize(500,500);
glutCreateWindow(“Dasar-dasar OpenGL dan glut “);
glutDisplayFunc(tampilan);
glClearColor(1,1,1,0);
gluOrtho2D(-250,250,-250,250);
glutKeyboardFunc(tekanKeyboard);
glutMainLoop();
return 0;
}
//=======================================================

Menggambar Geometri Primitif OpenGL di C++

#include <GL/glut.h>

//=======================================================
void tampilan(){
glClear(GL_COLOR_BUFFER_BIT); // Menghapus layar

// membuat titik
glBegin(GL_POINTS);
glVertex2f(-200,-200); // membuat titik pada koordinat (0,0)
glEnd();

// membuat garis
glBegin(GL_LINES);
glColor3f(0,1,0); // memberi warna
glVertex2f(0,0);
glVertex2f(200,200);
glVertex2f(220,-10);
glVertex2f(220,-50);
glEnd();

// membuat
glBegin(GL_LINE_STRIP);
glColor3f(1,0,0);
glVertex2f(0,0);
glVertex2f(-100,0);
glVertex2f(-100,200);
glVertex2f(0,10);
glEnd();

glBegin(GL_LINE_LOOP);
glColor3f(0,0,1);
glVertex2f(0,-100);
glVertex2f(0,-200);
glVertex2f(-100,-200);
glVertex2f(-100,-100);
glEnd();

glBegin(GL_POLYGON);
glColor3f(1,1,0);
glVertex2f(100,0);
glColor3f(1,1,0);
glVertex2f(200,0);
glColor3f(1,0,0);
glVertex2f(180,-100);
glColor3f(0,1,0);
glVertex2f(120,-100);
glEnd();

glBegin(GL_TRIANGLES);
glVertex2f(-150,-50);
glVertex2f(-200,-80);
glVertex2f(-100,-80);
glEnd();

glBegin(GL_TRIANGLE_FAN);
glVertex2f(-240,0);
glVertex2f(-200,0);
glVertex2f(-220,50);
glEnd();

glBegin(GL_TRIANGLE_STRIP);
glColor3f(1,1,0);
glVertex2f(150,-200);
glColor3f(1,0,0);
glVertex2f(100,-200);
glColor3f(1,0,1);
glVertex2f(125,-125);
glEnd();

glBegin(GL_QUADS);
glVertex2f(0,-240);
glVertex2f(-50,-240);
glVertex2f(-50,-200);
glVertex2f(0,-200);
glEnd();

glFlush();
}
//=======================================================
int main(int argc, char** argv){
glutInit(&argc,argv);
glutInitWindowPosition(400,200);
glutInitWindowSize(500,500);
glutCreateWindow(“Dasar-dasar OpenGL dan glut “);
glutDisplayFunc(tampilan);
//glClearColor(1,1,1,0);
gluOrtho2D(-250,250,-250,250);
glutMainLoop();
return 0;
}
//=======================================================

Dasar Meggambar Menggunakan OpenGL di C++

#include <GL/glut.h>

//=======================================================
void tampilan(){
glClear(GL_COLOR_BUFFER_BIT); // Menghapus layar
glBegin(GL_POLYGON);
glColor3f(255,255,255);
//for(int i=0; i<400; i++){
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glVertex2f(-0.5, -0.5);
//}
glEnd();
glBegin(GL_POINTS);
glColor3f(255,0,0);
for(int i=0; i<400; i++){
glVertex2f(0, 1.0f*i/400);
glVertex2f(0, -1.0f*i/400);
glVertex2f(1.0f*i/400, 0);
glVertex2f(-1.0f*i/400, 0);

}
glEnd();
glFlush();
}
//=======================================================
int main(int argc, char** argv){
glutInit(&argc,argv);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow(“Dasar-dasar OpenGL dan glut “);
glutDisplayFunc(tampilan);
glutMainLoop();
return 0;
}
//=======================================================