今天學的是銜接上禮拜所學的GLUT/freeglut專案,先下玩簡易三步驟下載freeglut(從moodle下載>解壓縮至桌面>更改lib內的檔案名libglut32.a),去codeblock打開新專案,GLUT,把他寫好的程式碼刪除,改寫一個新的,第四行是控制你所畫出來的東西形狀或是大小(glutSolidTeapot(0.3);),第12行則是建立3D視窗(glutCreateWindow("week02 YES!!");),做出來就是一個茶壺
這是更改第一張程式碼中的第四行將glutSolidTeapot>glutWireTeapot,這樣就能做出空的茶壺了!!!
是在void display()中輸入(glColor3f(0.0,1.0,0.0);)的程式碼,括弧中的數字是紅綠藍的比例。
如果將變色的程式碼(glColor3f(0.0,1.0,0.0);)寫在茶壺的後面(glutSolidTeapot(0.3);),那執行時就會先跑出為變色的茶壺,需要觸發茶壺視窗,使他重畫,才能它變色。
要寫出三角形迴圈,需要有個開始與結束(glBegin()&glEnd()),可以在glBegin()中選擇要使用點(GL_POINTS),線(GL_LINE_LOOP),多邊形(GL_POLYGON),改變不同形狀:))
茶壺程式碼:
#include <GL/glut.h>
void display()
{
glColor3f(0.5,0.1,0.2);
///gl開頭3f結尾(3個float數字,中間顏色)/顏色在畫茶壺之前才有用!
glutSolidTeapot( 0.3 );
///glutSolidTeapot是實心茶壺~~/glutWireTeapot是空心茶壺~~
glutSwapBuffers();
///交換2倍buffer
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
///main的參數放進來
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
///啟動3D的顯示能力(兩倍顯示buffer,有3D深度值)
glutCreateWindow("week02 Yes!!!");
///建立3D窗子
glutDisplayFunc(display);
///等一下怎麼畫
glutMainLoop();
///主要迴圈會卡在這裡,不會結束
}
多邊形程式碼:
#include <GL/glut.h>
void display()
{
glBegin(GL_POLYGON);
glColor3f(1,0,0); glVertex2f(1,0);
glColor3f(0,1,0); glVertex2f(-1,1);
glColor3f(0,0,1); glVertex2f(-1,-1);
glEnd();
glutSwapBuffers();
}
int main(int argc, char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week02 Yes!!!");
glutDisplayFunc(display);
glutMainLoop();
}




2020資訊男標準雜誌會有的文章
回覆刪除