2017年2月20日 星期一

Week01_ 鄉下人筆記






截圖作業1







                                                                       截圖作業2



先開啟codeblocks,選取開新檔,開project,找到OpenGL,開啟並截圖


                                                                      截圖作業3










week04

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

















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

















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















作業二
1.開啟上週(Week03)所學到的OpenGL程式及GLUT程式碼之執行檔。

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


截圖檔














    glTranslatef(0.5,0,0);  


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



   glPushMatrix();
   glPopMatrix();


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


作業三
打出以下程式碼及各自代表的意義。



截圖檔


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




























程式碼

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

   }











沒有留言:

張貼留言