2012年5月21日 星期一

作業三

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是在控制使用者的鍵盤上下左右移動
  glEnable( GL_DEPTH_TEST );
  
  p1.xpos=5.0;
  p1.ypos=0.3;
  p1.zpos=5.0;
  p1.heading=0.0;
       
  return (0);
}


視角一

視角二

視角三
3.心得:這次的作業我是拿上次的作業加以改良所寫成的,由於上次已經畫了一館跟六館,而這次則把剩餘的建築物補上。

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。
 

2012年3月18日 星期日

作業一

1.主題介紹:主題是元智一館


2.過程與成果展示:

      glBegin(GL_POLYGON);
      glColor3f(0.98, 0.98, 0.98);

      double angle1=0;
      int i ;
      for ( i = 0; i < 100; i++)
      {
        angle1=2*3.14159*i/100;
        glVertex2f( -0.8+cos(angle1)/5, 0.8+sin(angle1)/5 );
    }
    glEnd()



 這段code是在畫出我的成果圖中的月亮,裡面用到一些數學函式,後面我的路燈也是用一樣的方式把圖畫出來。




3.心得:這次的作業感覺上是要我們熟悉一下編譯環境跟用glut去畫出一個比較基本的圖形,覺得自己目前所學不多,所以畫的非常簡陋,看過以前修課同學畫的圖,實在非常厲害。希望以後也能跟那同學一樣畫出一個很貼近真實的圖片