一、課本範例
網址:https://jsyeh.org/3dcg10/
下載Exsample的data跟win32
windows解壓縮後,把data解壓縮在裡面
再將windows資料夾下的Transformation打開,或有一個車子的模型
移動、旋轉、大小
glTransform是移動
glRotate是旋轉
glScale是大小
將滑鼠移到要調整的數值上,並點住滑動,便能改變數值
右鍵畫面能更改模型
二、移動茶壺
建立GLUT專案
先下載freeglut資料夾,將lib/libfreeglut.a複製貼上改為libglut32.a。開啟CodeBlock,建立GLUT專案,Build and run確認有圖形在轉
移動glTranslatef()
複製上禮拜的茶壺程式,在void display裡打進新程式
因glTranslatef()會改變矩陣,所以要glPushMatrix();跟glPopMatrix();來備份跟還原矩陣Build and run後茶壺會被移動
三、利用滑鼠移動
建立GLUT專案
freeglut資料夾用過就不用再改了,同上,並複製上面的程式碼
點擊移動茶壺
建立一個函式mouse,包含button、state、x、y,內容有X Y,外面要宣告float X,Y,Z,把glTranslatef()裡改為X,Y,Z,在main函式裡新增glutMouseFunc(mouse);
Build and run並透過點擊改變茶壺位置
四、利用滑鼠找位置並畫圖
建立GLUT專案
同上,並複製上面的程式碼
點擊畫面秀位置
把glPushMatrix(); 到glPopMatrix();都刪掉,在mouse函式裡增加printf("%d %d %d\n",button,state,x,y);讓每次點擊時,小黑都會顯示東西
Build and run並點擊小視窗畫面,小黑會有一串數字,分別為button state x y左:0 中:1 右:2按下:0 放開:1
把新增的那行程式碼改為if(state==GLUT_DOWN) printf(" glVertex2f(%.2f,%.2f);\n",X,Y);
GLUT_DOWN是按下,如果是按下,則印出指令跟座標
Build and run並點擊小視窗畫面,小黑會有一串指令跟座標利用這些點,複製後貼到上次回家作業畫圖的程式裡,可省去用小畫家找座標的時間
沒有留言:
張貼留言