2017年3月13日 星期一

20170313_Week03 佳諭der課堂筆記


Week 03 課堂內容筆記摘要




作業一
複習上週(Week02)所學到的OpenGL程式及GLUT程式碼之執行檔。
(此處顯示茶壺程式碼及基本glut程式執行檔)




















作業二 - 用GLUT程式學會滑鼠事件操作
1.在第一行增加 #include <stdio.h>  printf( ) 可印出來。

2.在main函式中增加 glutMouseFunc(mouse); 測試滑鼠事件

3.打出滑鼠事件(mouse)函式程式碼及各自代表的意義。


截圖檔
















程式碼

    void mouse(int button, int state, int x, int y)
     
     *button代表滑鼠按鍵種類
     *state代表滑鼠按鍵之狀態
     *(x,y)代表滑鼠座標

   {
        printf("%d %d %d %d\n",button,state,x,y);

        glColor3f( 1 , x/300.0 , y/300.0 );
        *300.0代表示窗大小,可隨時調整做改變
        /*可利用此行程式碼改變茶壺顏色*/

        glutPostRedisplay();
        /*利用便利貼讓display重整使滑鼠事件能夠正常進行*/
   }





作業三 - 用GLUT程式學會滑鼠事件移動操作
1.在main函式中增加 glutMotiomFunc(motion); 代表滑鼠移動事件

2.打出滑鼠移動事件(motion)函式程式碼及各自代表的意義。



截圖檔


















程式碼

    void motion(int x, int y)
     *(x,y)代表滑鼠座標

   {
        printf("%d %d\n",x,y); 
        /*可用另一程式碼來顯示座標值(可用滑鼠點擊來畫出形狀)*/
        /*printf("glVertex2f(%.2f,%.2f);\n" , (x-250)/500.0 -(y-250)/500.0 ); */
        *代表座標值
        *代表座標值運算

        glColor3f( 1 , x/300.0 , y/300.0 );
        *300.0代表示窗大小,可隨時調整做改變
        /*可利用此行程式碼改變茶壺顏色*/

        glutPostRedisplay();
        /*利用便利貼讓display重整使滑鼠事件能夠正常進行*/
   }





作業四 - 用GLUT程式畫出完整圓形及延伸形狀改變
1.在第一行增加 #include <math.h> 讓數學運算式可作使用


2.寫出畫圓函式程式碼及各自代表的意義。


截圖檔


















程式碼


    glBegin(GL_POLYGON);
    *可變換任意形狀(不限定多邊形)
    
        for( float angle=0  ; angle <3.1415926 * 2  ; angle + = 0.01 )
        *for迴圈開始條件(此為角度之開始值)
        *for迴圈結束條件(此為角度之結束值) > 藍字為include <math.h>之PI
        *for迴圈增加條件(此為角度要增加的值)

     {
            glVertex2f( cos(angle) , sin(angle) ); 
            *代表角度在x軸的方向(可用數值改變形狀)
            *代表角度在y軸的方向(可用數值改變形狀)
     }









沒有留言:

張貼留言