親手打造第一個圖學程式
一、介紹基本框架#include <GL/glut.h> //呼叫3D GLUT 函式庫(外掛)
void display() //設定display函式
{
glClearColor(0,1,1,0); //制定背景顏色,0,1,1會設為青色
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //重新設定你制定的背景顏色
glColor3f(0,0,1); //制定色彩,0,0,1為藍色
//3f的3為3個顏色變數(紅,綠,藍),f為float,介於0.0~1.0
glutSolidTeapot(0.3); //使用glut函式的實心茶壺
glutSwapBuffers(); //交換繪圖buffer(記憶體)
}
int main(int argc,char *argv[]) //主程式的函式,吃argc參數數量;argv是參數的全部,用陣列存起來
{
glutInit(&argc,argv); //開始使用GLUT,使用樓上的參數
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); //開始設定顯示模式
glutCreateWindow("GLUT Shapes"); //建立GLUT 3D視窗
glutDisplayFunc(display); //註冊display函式
glutMainLoop(); //主要迴圈 讓他一直跑
}
以下為上述程式跑出來的結果
以下再貼上上述程式碼
#include <GL/glut.h>
void display()
{
glClearColor(0,1,1,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0,0,1);
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}
二、畫出基礎 點線面 圖形
把上述紅色那行實心茶壺程式碼,改成以下五行
glBegin(GL_POLYGON); //開始畫(多邊形)
glVertex3f(-1,1,0); //頂點英文
glVertex3f(1,1,0); //Vertex
glVertex3f(0,-1,0); //3f為x,y,z 3個參數,float
glEnd(); //結束畫
跑出來的結果~
以下再貼上上述程式碼
#include <GL/glut.h>
void display()
{
glClearColor(0,1,1,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(0,0,1);
glBegin(GL_POLYGON);
glVertex3f(-1,1,0);
glVertex3f(1,1,0);
glVertex3f(0,-1,0);
glEnd();
glutSwapBuffers();
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}


沒有留言:
張貼留言