第一個自己寫程式碼
#include <stdio.h>
#include <GL/glut.h>
int main(int argc, char **argv)
{
for(int i=0;i<argc;i++)
{
printf("argv[i] : %s\n", i ,argv);
}
}
打上上面的程式碼之後
(1) 把freeglut\bin裡的freeglut.dll複製到codeblocks專案資料夾的bin\Debug裡
(2)試著執行程式碼
(3)開啟cmd、輸入cd 去檔案中的bin\Debug 後按Enter
ex: cd Desktop\week02_GLUT\bin\Debug
(4) 再輸入 (檔案名字).exe (輸入你要的字串)
附上一張圖:
寫一個茶壺圖:
#include <stdio.h>
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutCreateWindow("Week Hello World Triangle");
glutDisplayFunc(display);
glutMainLoop();
}
茶壺的顏色變換 --- 方法1
#include <stdio.h>
#include <GL/glut.h>
///(1) 我們要使用比較高級的GLUT (OpengGL User Toolkit)
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///(8)清畫面
glColor3f(120/255.0,1,205/255.0);///今天交的程式碼:color
glutSolidTeapot(0.3);///(9) 大小為0.3的茶壺
glutSwapBuffers();///(10)交換double buffers 來顯示畫出來的畫面
}
int main(int argc, char **argv)///(2)主要的函式 main
{ /// 這個參數的意思,是把作育系統的參數,塞進來
glutInit(&argc, argv);///(3)初始Initizlize你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE);///(4)顯示模式:double buffers (以後再教其他)
glutCreateWindow("Week Hello World Triangle");///(5)建立視窗
glutDisplayFunc(display);///(6) 顯示函式display() 用來畫圖的
glutMainLoop();///(7)主要的迴圈,用來控制程式
}
茶壺的顏色變換 --- 方法2
#include <stdio.h>
#include <GL/glut.h>
///(1) 我們要使用比較高級的GLUT (OpengGL User Toolkit)
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///(8)清畫面
///glColor3f(120/255.0,1,205/255.0);///今天交的程式碼:color
///gl代表示OpenGL的函式 (cf. glut開頭, 表示是GLUT的函式)
/// 3f 3表示3個參數, f表示float浮點數 0.0 ... 1.0
glColor3ub(248, 199, 20); ///ub: unsigned char byte 0...255
glutSolidTeapot(0.3);///(9) 大小為0.3的茶壺
glutSwapBuffers();///(10)交換double buffers 來顯示畫出來的畫面
}
int main(int argc, char **argv)///(2)主要的函式 main
{ /// 這個參數的意思,是把作育系統的參數,塞進來
glutInit(&argc, argv);///(3)初始Initizlize你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE);///(4)顯示模式:double buffers (以後再教其他)
glutCreateWindow("Week Hello World Triangle");///(5)建立視窗
glutDisplayFunc(display);///(6) 顯示函式display() 用來畫圖的
glutMainLoop();///(7)主要的迴圈,用來控制程式
}
茶壺的背景顏色變換
#include <stdio.h>
#include <GL/glut.h>
///(1) 我們要使用比較高級的GLUT (OpengGL User Toolkit)
void display()
{
glClearColor(68/255.0, 178/255.0, 134/255.0, 1);///清背景顏色
glClear(GL_COLOR_BUFFER_BIT);///(8)清畫面
///glColor3f(120/255.0,1,205/255.0);///今天交的程式碼:color
///gl代表示OpenGL的函式 (cf. glut開頭, 表示是GLUT的函式)
/// 3f 3表示3個參數, f表示float浮點數 0.0 ... 1.0
glColor3ub(248, 199, 20); ///ub: unsigned char byte 0...255
glutSolidTeapot(0.3);///(9) 大小為0.3的茶壺
glutSwapBuffers();///(10)交換double buffers 來顯示畫出來的畫面
}
int main(int argc, char **argv)///(2)主要的函式 main
{ /// 這個參數的意思,是把作育系統的參數,塞進來
glutInit(&argc, argv);///(3)初始Initizlize你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE);///(4)顯示模式:double buffers (以後再教其他)
glutCreateWindow("Week Hello World Triangle");///(5)建立視窗
glutDisplayFunc(display);///(6) 顯示函式display() 用來畫圖的
glutMainLoop();///(7)主要的迴圈,用來控制程式
}
多邊形頂點
#include <stdio.h>
#include <GL/glut.h>
///(1) 我們要使用比較高級的GLUT (OpengGL User Toolkit)
void display()
{
glClearColor(68/255.0, 178/255.0, 134/255.0, 1);///清背景顏色
glClear(GL_COLOR_BUFFER_BIT);///(8)清畫面
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();///(10)交換double buffers 來顯示畫出來的畫面
}
int main(int argc, char **argv)///(2)主要的函式 main
{ /// 這個參數的意思,是把作育系統的參數,塞進來
glutInit(&argc, argv);///(3)初始Initizlize你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE);///(4)顯示模式:double buffers (以後再教其他)
glutCreateWindow("Week Hello World Triangle");///(5)建立視窗
glutDisplayFunc(display);///(6) 顯示函式display() 用來畫圖的
glutMainLoop();///(7)主要的迴圈,用來控制程式
}
多邊形頂點2
#include <stdio.h>
#include <GL/glut.h>
///(1) 我們要使用比較高級的GLUT (OpengGL User Toolkit)
void display()
{
glClearColor(68/255.0, 178/255.0, 134/255.0, 1);///清背景顏色
glClear(GL_COLOR_BUFFER_BIT);///(8)清畫面
glBegin(GL_POLYGON); ///開始畫
glColor3ub(51,97,161);///用小畫家來取顏色, 也可以取出座標
glVertex2f((137-400)/400.0, -(467-400)/400.0);///如果座標是137, 467 (800X800的圖)
glVertex2f((177-400)/400.0, -(194-400)/400.0);///先把中心點減掉 (137-400) (467-400)
glVertex2f((243-400)/400.0, -(245-400)/400.0);///-400 ... +400 便會介於 -1...+1
glEnd();///結束畫
glutSwapBuffers();///(10)交換double buffers 來顯示畫出來的畫面
}
int main(int argc, char **argv)///(2)主要的函式 main
{ /// 這個參數的意思,是把作育系統的參數,塞進來
glutInit(&argc, argv);///(3)初始Initizlize你的glut參數設定
glutInitDisplayMode(GLUT_DOUBLE);///(4)顯示模式:double buffers (以後再教其他)
glutCreateWindow("Week Hello World Triangle");///(5)建立視窗
glutDisplayFunc(display);///(6) 顯示函式display() 用來畫圖的
glutMainLoop();///(7)主要的迴圈,用來控制程式
}







沒有留言:
張貼留言