2017年4月10日 星期一

Week06 20170410 芷萱的課堂筆記

作業一:
練習打光
基本茶壺程式碼

     #include <GL/glut.h>


    static void display(void)
    {
         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
             glPushMatrix();
             glutSolidTeapot(0.3);
             glPopMatrix();
         glutSwapBuffers();
    }

利用內建的GLUT內的程式-可更改打光方向
const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f };

試著將此行程式碼數值改成
const GLfloat light_position[] = { 2.0f, 5.0f, 0.0f, 0.0f };



同時畫出兩個茶壺-個別加入Translatef . Rotatef做出不同變化
增加後程式碼→只要多增加一組 glPushMatrix(); 
                                                          glPopMatrix();即可畫出另一個茶壺

   #include <GL/glut.h>


   float angle=0;
   static void display(void)
   {
       angle++;
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
       glPushMatrix();
           glTranslatef(0,0.6,0);
           glutSolidTeapot(0.3);
       glPopMatrix();
       glPushMatrix();
           glRotatef(angle,0,1,0);
           glutSolidTeapot(0.3);
       glPopMatrix();
       glutSwapBuffers();
   }

● 確認下方程式碼有glutIdleFunc(display);-讓視窗閒置時即可執行display{}

畫出各種基礎幾何多邊形
   
    1. glutSolidTeapot(大小); ///茶壺
    2. glutSolidCube(大小); ///方塊
    3. glutSolidCone(底 r , 高 h , slice , stack); ///圓錐 (slice柳丁切 stack堆疊)
    4. glutSolidSphere(r , slice,stack); ///圓球
    5. glutDedocahedron(); ///十二面體
    6. glutIcosahedron(); ///二十面體

沒有留言:

張貼留言