2017年3月20日 星期一

20170320_Week04 佳諭der課堂筆記


Week 04 課堂內容筆記摘要



作業一
1.下載 [data] [win32] [glut32.dll] 壓縮檔並進行解壓縮到桌面。

















2. [window] 檔案開啟並合併[data] [glut32.dll] 檔案到裡面

















3.執行 Transfomation 檔案並操作3D圖學資訊介面
(此處為旋轉+移動+縮放程式碼顯示)















作業二 - 利用GLUT程式碼學會移動(Translate)功能及應用
1.開啟上週(Week03)所學到的OpenGL程式及GLUT程式碼之執行檔。

2.新增今日所學程式碼並應用到程式上面。


截圖檔
















程式碼


    glTranslatef(0.5,0,0);  


  * 代表移動(Translate)之GLUT程式碼
  * 代表X座標
  * 代表Y座標
  * 代表Z座標



   glPushMatrix();
   glPopMatrix();


  * 代表殘影之備份動作(Backup)
  * 代表殘影隻還原動作(Restore)
   


作業三 - 利用GLUT程式碼學會拖曳物件功能及實作
打出以下程式碼及各自代表的意義。



截圖檔


(此處為平面座標系統及滑鼠作標系統之差異)




























程式碼

1.首先在 #include <GL/glut.h> 下方宣告變數 float mouseX=0, mouseY=0;


2.打出以下程式碼並了解其意義並執行顯示。



   #include <GL/glut.h>

   float mouseX=0, mouseY=0;

   
   void display(void)

   {

       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

       glPushMatrix();

       glTranslatef(mouseX,mouseY,0);

       glutSolidTeapot(0.3);

       glPopMatrix();

       glutSwapBuffers();

   }

   

   void motion(int x, int y)

   {
        mouseX = ( x-150 ) / 150.0 ;
        mouseY = -( y-150 ) / 150.0 ;
        *此處為平面座標系統轉成滑鼠座標系統之換算

        

        glutPostRedisplay();
        /*在執行GLUT執行檔時更新畫面以重整使得變數在改變時不會產生重複動作造成閃格*/

   }

   



   int main(int argc, char *argv[])

   {

       glutInit(&argc, argv);

       glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

       glutCreateWindow("04160506_HW1");

       glutDisplayFunc(display);

       glutMotionFunc(motion);

       glutMainLoop();

   }



作業四 - 利用GLUT程式碼學會縮放(Scale)功能及應用
新增今日所學程式碼並應用到程式上面並執行應用。


截圖檔


















程式碼


    glScalef(0.5,0,0);  

  * 代表縮放(Scale)之GLUT程式碼
  * 代表X座標
  * 代表Y座標
  * 代表Z座標



沒有留言:

張貼留言