2017年10月21日 星期六

俊凱的Week06筆記

1.開啟week05專案檔
2.新增打光功能
    glEnable(GL_LIGHTING);//打光
    glEnable(GL_DEPTH_TEST);//3D深度偵測
    glEnable(GL_LIGHT0);//打光
    glLightfv(GL_LIGHT0,GL_POSITION,pos);//設定打光位置
3.新增鍵盤控制,滑鼠控制,產生動畫
float rotateX=0,rotateY=0,rotateZ=0;
void keyboard(unsigned char key, int x, int y)
{
    printf("now: %c ( %d %d )\n", key, x, y);
    if(key=='x')rotateX++;//X軸旋轉
    if(key=='y')rotateY++;//Y軸旋轉
    if(key=='z')rotateZ++;//Z軸旋轉
    if(key=='e')rotateX=0,rotateY=0,rotateZ=0;
    glutPostRedisplay();
}
int oldX=0, oldY=0;
void mouse(int button, int state, int x, int y)
{
    printf("Button: %d  State: %d  ( %d %d )\n", button, state, x, y);
    if(state==GLUT_DOWN)//按下按鍵
    {
        oldX = x;
        oldY = y;
    }
}
void motion(int x, int y)//執行動畫
{
    rotateY += -(x-oldX);//Y方向轉動
    rotateX += -(y-oldY);//Y方向轉動
    oldX = x;//更新座標
    oldY = y;//更新座標
    glutPostRedisplay();
}

沒有留言:

張貼留言