📄 main.cpp
字号:
glPushMatrix();
{
glScalef (0.4, 2.0, 1.0);
glutSolidCube (1.0);
}
glPopMatrix();
// sepatu
glTranslatef (0, -0.35, 0.0);
glColor3f(1,0,0);
glTranslatef (0, -0.35, 0.0);
glPushMatrix();
{
glScalef (0.5, 0.4, 1.5);
glutSolidCube (1.0); //
}
glPopMatrix();
}
glPopMatrix();
}
glPopMatrix();
glutFullScreen();
glutSwapBuffers();
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective(65.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef (0.0, 0.0, -5.0);
}
void keyboard (unsigned char key, int x, int y)
{
switch (key) {
//pengaturan tombol keyboard//
//kepala//
case 'e':
geleng =(geleng-5)%360;
glutPostRedisplay();
break;
case 'E':
geleng =(geleng+5)%360;
glutPostRedisplay();
break;
case 'r':
angguk =(angguk-5)%360;
glutPostRedisplay();
break;
case 'R':
angguk =(angguk+5)%360;
glutPostRedisplay();
break;
//tangan//
case 'd': //tanganKiriAtas1
tanganKiriAtas1 = (tanganKiriAtas1 + 5) % 360;
glutPostRedisplay();
break;
case 'D':
tanganKiriAtas1 = (tanganKiriAtas1 - 5) % 360;
glutPostRedisplay();
break;
case 'f'://tanganKanan1
tanganKananAtas1 = (tanganKananAtas1 + 5) % 360;
glutPostRedisplay();
break;
case 'F':
tanganKananAtas1 = (tanganKananAtas1 - 5) % 360;
glutPostRedisplay();
break;
case 's': //tanganKiriAtas2
tanganKiriAtas2 = (tanganKiriAtas2 + 5) % 360;
glutPostRedisplay();
break;
case 'S':
tanganKiriAtas2 = (tanganKiriAtas2 - 5) % 360;
glutPostRedisplay();
break;
case 'g'://tanganKananatas2
tanganKananAtas2 = (tanganKananAtas2 + 5) % 360;
glutPostRedisplay();
break;
case 'G':
tanganKananAtas2 = (tanganKananAtas2 - 5) % 360;
glutPostRedisplay();
break;
case 'a': //tanganKiriBAwah
if (tanganKiriBawah > -170 && tanganKiriBawah<1)
{
tanganKiriBawah = (tanganKiriBawah - 5) % 360;
glutPostRedisplay();
}
else
{
if (tanganKiriBawah < -170)
{
tanganKiriBawah=(tanganKiriBawah + 5) % 360;
}
else
{
tanganKiriBawah=(tanganKiriBawah - 5) % 360;
}
glutPostRedisplay();
}
break;
case 'A':
if (tanganKiriBawah > -170 && tanganKiriBawah<1)
{
tanganKiriBawah = (tanganKiriBawah + 5) % 360;
glutPostRedisplay();
}
else
{
if (tanganKiriBawah < -170)
{
tanganKiriBawah=(tanganKiriBawah + 5) % 360;
}
else
{
tanganKiriBawah=(tanganKiriBawah - 5) % 360;
}
glutPostRedisplay();
}
break;
case 'h'://tanganKananBawah
tanganKananBawah = (tanganKananBawah + 5) % 360;
glutPostRedisplay();
break;
case 'H':
tanganKananBawah = (tanganKananBawah - 5) % 360;
glutPostRedisplay();
break;
//kaki //
case 'x': // kaki kiri atas //
kakiKiriAtas =(kakiKiriAtas-5)%360;
glutPostRedisplay();
break;
case 'X':
kakiKiriAtas =(kakiKiriAtas+5)%360;
glutPostRedisplay();
break;
case 'c':// kaki kanan atas //
kakiKananAtas =(kakiKananAtas-5)%360;
glutPostRedisplay();
break;
case 'C':
kakiKananAtas =(kakiKananAtas+5)%360;
glutPostRedisplay();
break;
case 'z': // kaki kiri bawah //
kakiKiriBawah =(kakiKiriBawah-5)%360;
glutPostRedisplay();
break;
case 'Z':
kakiKiriBawah =(kakiKiriBawah+5)%360;
glutPostRedisplay();
break;
case 'v':// kaki kanan bawah //
kakiKananBawah =(kakiKananBawah-5)%360;
glutPostRedisplay();
break;
case 'V':
kakiKananAtas =(kakiKananBawah+5)%360;
glutPostRedisplay();
break;
// gerak semua badan//
case 'm':
putarSemua1 =(putarSemua1+5)%360;
glutPostRedisplay();
break;
case 'M':
putarSemua1 =(putarSemua1-5)%360;
glutPostRedisplay();
break;
case 'n':
putarSemua3 =(putarSemua3+5)%360;
glutPostRedisplay();
break;
case 'N':
putarSemua3 =(putarSemua3-5)%360;
glutPostRedisplay();
break;
case 'b':
putarSemua2 =(putarSemua2+5)%360;
glutPostRedisplay();
break;
case 'B':
putarSemua2 =(putarSemua2-5)%360;
glutPostRedisplay();
break;
case 27:
case 'q':
exit(0); //keluar
break;
default:
break;
}
}
const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };
const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f };
const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };
const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
const GLfloat high_shininess[] = { 100.0f };
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize (500, 500);
glutInitWindowPosition (100, 100);
glutCreateWindow (argv[0]);
init ();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
//glutCreateMenu(world_menu);
//glutAddMenuEntry("Models", 0);
glClearColor(1,1,1,1);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glEnable(GL_LIGHT0);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess);
glutMainLoop();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -