2012年4月30日 星期一

作業二

1.主題介紹:主題是元智一館3D導覽

2.過程與成果展示:

為了不讓使用者覺得只是在看一個方塊的不同角度,多畫六館讓使用者更有感覺。

void keyboard(unsigned char key, int x, int y)
{
}
void specialkey(int key, int x, int y)
{
  switch( key ) {
    case GLUT_KEY_UP:
          p1.xpos -= (float)sin(p1.heading*piover180)*0.1 ;
       p1.zpos -= (float)cos(p1.heading*piover180)*0.1 ; 
       break;
    case GLUT_KEY_DOWN:
       p1.xpos += (float)sin(p1.heading*piover180)*0.1 ;
       p1.zpos += (float)cos(p1.heading*piover180)*0.1; 
       break;
    case GLUT_KEY_LEFT:
       p1.heading += 2.0f;
         p1.yrot = p1.heading;
       break;
    case GLUT_KEY_RIGHT:
       p1.heading -= 2.0f;
       p1.yrot = p1.heading;
       break;
  };
  glutPostRedisplay();
}

 這段code是在控制使用者的鍵盤上下左右移動

視角一

 
視角二,圖右邊為六館。

3.心得:這次的作業一館跟六館還是沒有畫的很漂亮,是有點偷懶的只用三個方形去代表一館跟六館,不過這次的作業目的在於讓我們知道怎麼使用gluLookAt,glTranslate, glRotate。