alanhc/張牧之 電腦圖學-week04
alanhc/張牧之 電腦圖學-week04
March 15, 2019

1.體驗
2. Codingggg
3. 小葉額外補充
(1) silhouette optical illusion
(2) Ivan Sutherland
(3) 神奇學姊 - 林郁珊
4. 小葉酷炫技巧XDDD
regular expression + batch script
本周大綱:glrotate()
0.講解
> 原理圖 > 語法
x,y,z : 數值代表以哪個為軸
其實x,y,z是指一個三度空間的向量
其實x,y,z是指一個三度空間的向量
> 安裝方法請參考 [ Week02 ]
(2)與 右手定則 有關~ > α 為旋轉角度
> z 為軸心
2. 開始Codingggggg

(2) 轉轉語法
位置 :
位置 :
display() > glPushMatrix() > glPopMatrix() >
語法:
float rotateAngle = x * 100.0;
glRotatef(rotateAngle,0,1,0);
解釋:
100.0 是因為我 滑鼠座標x (透過 motion() 處理) 介於-1和1之間,我乘上一個倍數做轉換。
0,1,0 代表我以y軸為旋轉軸
以 X 軸旋轉 | 參數(1,0,0)
> GL_COLOR_BUFFER_BIT 清 顏色
> GL_DEPTH_BUFFER_BIT 清 深度
glPushMatrix( )、glPopMatrix( ):讓 Transform Matrix 不要亂掉
Transform Matrix > 計算頂點在移動、旋轉、縮放後,會到哪裡。
3. 小葉的額外補充:

科技部計畫 - 棉花糖
4. 神奇小技巧
下載資料夾
notepad開啟
ctrl+F 在取代裡面輸入 ". copy "
.bat檔
Google:regular expression + batch script
今天的程式碼
今天的程式碼
---------------------------------------------------
Operation Neptune
[ 厲害學姊 ] [ 去年FB ]
滑鼠
用法:
(1) main() > 加上 glutMouseFunc(mouse);
(2)寫 mouse 函式
參數:
void mouse(int button,int state,int x,int y)
畫圓弧麻煩 ->
挑戰:[ 貝茲曲線 ]
(1) 公式
(2) 四個點固定寫死的寫法 [ Code1 ]
(3) 讀檔不固定點數
嘗試:
用法:
(1) main() > 加上 glutMouseFunc(mouse);
(2)寫 mouse 函式
參數:
void mouse(int button,int state,int x,int y)
畫圓弧麻煩 ->
挑戰:[ 貝茲曲線 ]
(1) 公式

(2) 四個點固定寫死的寫法 [ Code1 ]
(3) 讀檔不固定點數
嘗試:
codeblocks project add files -> failed
加在display() -> failed
加在main() -> failed
加在display() -> failed
加在main() -> failed
遇到問題:
Q. 讀不到檔案
A. 改成問題出在絕對路徑& \跳脫符號
Q. 讀不到檔案
A. 改成問題出在絕對路徑& \跳脫符號
路徑
寫絕對路徑 > C:\Users\alant\Desktop\PracticeBezier
預設路徑 >
方法:
使用 codeblocks檔案開啟 .cbp 查看
<Add directory="C:/Users/alant/Desktop/freeglut/lib" />
代表 C:/Users/alant/Desktop/freeglut/lib
小額外補充:
一般應用程式會去path底下找對應的.dll檔(應用程式擴充檔)
進階技巧
寫絕對路徑 > C:\Users\alant\Desktop\PracticeBezier
預設路徑 >
方法:
使用 codeblocks檔案開啟 .cbp 查看
<Add directory="C:/Users/alant/Desktop/freeglut/lib" />
代表 C:/Users/alant/Desktop/freeglut/lib
一般應用程式會去path底下找對應的.dll檔(應用程式擴充檔)