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


沒有留言:
張貼留言