1. 下載範例 https://jsyeh.org/3dcg10
data.zip windows.zip glut32.dll
2. windows.zip =解壓=> 下載\windows\Shapes.exe
data.zip =解壓=> 下載\windows\data\模型
glut32.dll =複製=> 下載\windows\glut32.dll
3. 跑 Shapes.exe 看範例, 試試看
左可按右鍵選單: 大頂點、很多顏色
右可按右鍵選單: POINT....POLYGON
step01-1 跑別人的範例
1. 下載範例 https://jsyeh.org/3dcg10
data.zip windows.zip glut32.dll
2. windows.zip =解壓=> 下載\windows\Shapes.exe
data.zip =解壓=> 下載\windows\data\模型
glut32.dll =複製=> 下載\windows\glut32.dll
3. 跑 Shapes.exe 看範例, 試試看
左可按右鍵選單: 大頂點、很多顏色
右可按右鍵選單: POINT....POLYGON
step01-2 跑你上週的程式
1. 上週的安裝 Git for Windows
2. 上週的 Git Bash: cd desktop, git clone 你的網址
cd 2022graphics1
3. 上週的安裝 freeglut, 記得改檔名 lib\libglut32.a
4. 在 CodeBlocks File-Open week01_GLUT專案,跑!
step02-1 親手打造 GLUT的程式 (5-10行)
有了上週的 week01_GLUT 的專案
我們要寫出今天的 week02_color 新專案
1. File-New-Project,選GLUT專案
2. 設好freeglut後
3. 確定有上週的進度後, 大膽的把上週的程式刪掉
4. 寫下今天的10行程式碼,會秀出黃色的茶壼
///step02-1 10行最精簡的 GLUT程式
///先全刪, 目標: 5-10行,寫完
#include <GL/glut.h> ///使用GLUT外掛,簡化程式
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///畫圖前, 先清畫面
glColor3f(1,1,0); ///設定色彩
glutSolidTeapot(0.3); ///實心的茶壼
glutSwapBuffers();///畫好後,交換出來
}
int main(int argc, char** argv) ///main()主函式 進階版
{
glutInit( &argc, argv); ///把參數,送給 glutInit 初始化
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH ); ///雙緩衡區 + 3D深度功能
glutCreateWindow("第02週的程式哦!"); ///開 GLUT 視窗
glutDisplayFunc(display); ///用來顯示的函式
glutMainLoop(); ///主要的程式迴圈
}
step03-1 彩色三角形
接上一節的進度(黃色茶壼),我們想把今天的範例(彩色三角形)跑出來, 所以修改一下,將 glutSolidTeapot(0.3) 改成 glBegin(GL_POLYGON) ... glEnd() 在中間則用 glColor3f()及glVertex2()來標定色彩、頂點座標
///step02-1 10行最精簡的 GLUT程式
///先全刪, 目標: 5-10行,寫完
#include <GL/glut.h> ///使用GLUT外掛,簡化程式
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///畫圖前, 先清畫面
glColor3f(1,1,0); ///設定色彩
///glutSolidTeapot(0.3); ///實心的茶壼
glBegin(GL_POLYGON);
glColor3f(1,0,0);///紅色
glVertex2f(-1, -1);
glColor3f(0,1,0);///綠色
glVertex2f(+1, -1);
glColor3f(0,0,1);///藍色
glVertex2f(0, +1);
glEnd();
glutSwapBuffers();///畫好後,交換出來
}
int main(int argc, char** argv) ///main()主函式 進階版
{
glutInit( &argc, argv); ///把參數,送給 glutInit 初始化
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH ); ///雙緩衡區 + 3D深度功能
glutCreateWindow("第02週的彩色三角形哦!"); ///開 GLUT 視窗
glutDisplayFunc(display); ///用來顯示的函式
glutMainLoop(); ///主要的程式迴圈
}
沒有留言:
張貼留言