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軸的方向(可用數值改變形狀)
}





沒有留言:
張貼留言