2017年5月23日 星期二

week14

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();


沒有留言:

張貼留言