timer
程式碼
#include <stdio.h>
void timer(int t)
{
printf("現在我起床了, t是%d...", t);
glutTimerFunc(100, timer, t+1);
printf("我撥了一個新的timer....");
angle+=3;
glutPostRedisplay();
printf("記得重畫畫面哦! 我睡了, bye\n");
}
int main(int argc, char**argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGB);
glutCreateWindow("Yes, 3D Model Here");
glutDisplayFunc(display);
///glutIdleFunc(display);
glutTimerFunc(2000, timer, 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();
}
對準手關節
glPushMatrix();
drawBody();
glutSolidTeapot(0.03);
glPushMatrix();///Left Part
glTranslatef(-0.18,0, 0);///(3) 最後,把它掛在對的位置
glRotatef(-angle, 0,0,1); ///(1) 先轉動
glTranslatef(0.19, -0.01, 0);///(2) move the rotate center to center
drawArm0();
/*glTranslatef(-0.48, +0.1, 0);///(3) 最後,把它掛在對的位置
glRotatef(-angle, 0,0,1);///(1) 先轉動
glTranslatef(0.48, -0.1, 0);///(2) 接著將旋轉中心,放到真的中心, 記得把樓上先註解掉
drawArm1();*/
glPopMatrix();
glPopMatrix();
沒有留言:
張貼留言