2023年3月1日 星期三

binhun-week03

https://jsyeh.org/3dcg10/ 下載windows.zip 和 data.zip
windows.zip解壓縮 下載 (今天的主角)
data.zip 解壓縮 下載(小心目錄)
執行(今天的主角)
    glTranslatef(x,y,z); 綠色的數字,上下拉動他
    (其他也可以拉看看,下周會教)

如果閃退,就是你的data.zip解錯目錄


打開codeblocks複製上週程式碼10行
跑出白色茶壺
glTranslatef(0.5,0.5,0);///備份矩陣
glutSolidTeapot(0.3);///它會改變你的矩陣
glPopMatrix();///還原矩陣
開啟新專案把程式碼複製貼上
使用global變數float X=0,Y=0,Z=0;,來讓座標改變
void mouse(int button,int state,int x,int,y)
{      ///    左中右鍵  按下/放開 小x 小y
      X =  (x-150)/150.0;///減一半,除一半
      Y = -(y-150)/150.0;///減一半,除一半,Y變負的  
}
glutMouseFunc(mouse);設定好mouse函式
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);///清除背景
使用滑鼠點擊就可以改變茶壺的位置
開新專案把剛剛的程式碼複製貼上
加上#include<stdio.h>為了用printf
刪掉程式碼留下glClear()清背景 glutSwapBuffers()交換

printf("glVertex2f(%.2f,%.2f);\n ",X,Y);印出來滑鼠點的地方

printf("%d %d %d %d\n",button,state ,x,y);印出來左中右鍵 按下/放開 

if(state==GLUT_DOWN)按下去放開再印出來
用ENTER複製 
glBegin(GL_POLYGON);
貼上頂點
glEnd();
就可以畫出想要的圖形ㄌ





沒有留言:

張貼留言