alanhc/張牧之 電腦圖學-week04

alanhc/張牧之 電腦圖學-week04

March 15, 2019
0. 講解
1.體驗
2. Codingggg
3. 小葉額外補充
    (1) silhouette optical illusion
    (2) Ivan Sutherland
    (3) 神奇學姊 - 林郁珊
4. 小葉酷炫技巧XDDD
    regular expression + batch script
本周大綱:glrotate()

0.講解

    > 原理圖                                          > 語法


void glRotatef(GLfloat angle,
GLfloat x,
GLfloat y,
GLfloat z);



angle : 旋轉角度
x,y,z : 數值代表以哪個為軸
其實x,y,z是指一個三度空間的向量
doc ] [ 原理 ]










1.體驗

> 安裝方法請參考 [ Week02 ]
(1) 觀察這張圖
(2)與 右手定則 有關~ 
> α 為旋轉角度
> z軸心

2. 開始Codingggggg

(1)基本茶壺動動語法 動動程式碼 ]

(2) 轉轉語法
位置 : 
display() >  glPushMatrix() > glPopMatrix() > 
語法:
float rotateAngle = x 100.0;
glRotatef(rotateAngle,0,1,0);
解釋:
100.0 是因為我 滑鼠座標x (透過 motion() 處理) 介於-1和1之間,我乘上一個倍數做轉換。
0,1,0 代表我以y軸為旋轉軸
Y 軸選轉 | 參數(0,1,0)
X 軸旋轉 | 參數(1,0,0)










(3) 小補充
glClear( ): 清buffer用,把舊畫面清掉參考更多 ]
    > GL_COLOR_BUFFER_BIT 清 顏色
    > GL_DEPTH_BUFFER_BIT  清 深度
glPushMatrix( )、glPopMatrix( ):讓 Transform Matrix 不要亂掉
    Transform Matrix > 計算頂點在移動、旋轉、縮放後,會到哪裡。

3. 小葉的額外補充:

(1) silhouette optical illusion            ( 茶壺搞不清楚往哪邊轉)                                     > 跟第一眼印象有關

(2) Ivan Sutherland - 電腦圖學的小歷史                 原本博士寫論文                                                                   沒有對應的學科 > 研討會結束發表                                 > 電腦圖學誕生                                                                    影響 物件導向 計算機圖學 等發展                                       [ 1963 Sketch Pad Demo ]                                                [ Wiki
(3) 神奇學姊 - 林郁珊  [ blog ] [ 作品Youtube
科技部計畫 - 棉花糖
選題目選很久 > 從生活觀察       看雲 > 打工經驗 >上 stanford 課程 > 論文 變成專研題目                  "興趣" 重要                                      ** 2018 互動技術概論 期末作品**

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) 讀檔不固定點數
嘗試:
codeblocks project add files -> failed
加在display() -> failed
加在main() -> failed
遇到問題:
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檔(應用程式擴充檔)