複習上週課程
- 到老師個人網站下載data, win32, glut32.dll --> link
- 執行Transformation.exe
![]() |
| 移動 |
![]() |
| 旋轉 |
![]() |
| 縮放 |
-------------------------------------------------------------------------
Viewing
- 執行Projection.exe
以角錐的方式投影
fovy: field of view angle,視角角錐的角度
aspect: aspect ratio,視角角錐的長寬比例
zNear: 相機(投影幕)的位置
zFar: 牆壁的位置
結果:
結果:
-------------------------------------------------------------------------
glOrtho 參數解釋:
以平行的方式投影
left, right, bottom, top: 平行方塊的上下左右邊界,會影響投影比例
near: 相機(投影幕)的位置
far: 牆壁的位置
結果:
glFrustum 參數解釋:
left, right, bottom, top: 平行方塊的上下左右邊界,會影響投影比例
near: 相機(投影幕)的位置
far: 牆壁的位置
**與glOrtho不同的地方,改變left, right, bottom, top可能會導致模型消失
結果:
gluLookAt 參數解釋:
eye: 相機位置的x, y, z
center: 看出去的向量
top: 相機的up vector(相機平面的旋轉) x, y, z
結果:
-------------------------------------------------------------------------
編譯Projection source code
- 按照前幾週所學,新增code blocks glut project
- 將source code的 projection.c, glm.c, glm.h新增到專案裡,.c檔改成.cpp
- 刪除原本的main.c
- 因為程式碼年代久遠,遇到strdup問題
- 解決方法一:將compiler flag改成gnu++0x
- 解決方法二:將compiler預設的c++11勾勾取消
結果:
-------------------------------------------------------------------------

Modify Projection source code
- 從moodle下載老師修改好的程式
- 執行
- 如果遇到freeglut的位置不對,右鍵點選.cbp檔,以文字編輯器開啟,修改freeglut路徑及可

結果:













沒有留言:
張貼留言