GLUT程式 如同上週所述之步驟開啟 在此圖片簡述
接著
是本週進度
1.將原程式碼的下列幾行複製到新的記事本(附文檔)
#include <GL/glut.h>
int main(int argc, char *argv[])
{
glutInit(&argc, argv); ///開GLUT
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); ///設定顯示模式
glutCreateWindow("GLUT Shapes"); ///視窗
glutDisplayFunc(display); //顯示對應函數
glutMainLoop(); ///main迴圈壓後
}
2.將原程式碼全部刪除,將記事本的程式碼複製到原程式碼,並加入剩餘程式碼
茶壺程式碼
#include <GL/glut.h>
void display()
{
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();
return EXIT_SUCCESS;
}
更改顏色!!
display的內部加入一行 glColor3f(1,1,0); 更改成黃色
換三角形
加入以下程式碼,加入頂點顏色,形成漸層
glColor3f(1,0,0); glVertex2f(0,1);///紅色頂點Vertex
glColor3f(0,1,0); glVertex2f(-1,-1);///綠色頂點Vertex
glColor3f(0,0,1); glVertex2f(1,-1);///藍色頂點Vertex
使用頂點畫圖
step1. 選一張圖匯入小畫家,將畫布改成200*200
step2. 使用滴管吸取顏色確認顏色rgb 在程式中作色彩換算(色彩數值/255.0)
step3. 確認頂點,在程式中換算位值((x-一半)/一半,-(y-一半)/一半)
畫出一個圓
step1. 加入一段函數畫圓
void myCircle(float r,float x,float y)
{
glBegin(GL_POLYGON);
for(float a=0;a<2*3.141592653589793238462632383279;a+=0.01)
{
glVertex2f(r*cos(a)+x,r*sin(a)+y);
}
glEnd();
}
step2. 加入圓形大小與位置
glColor3f(1,0,1); myCircle(0.6,0,0);
glColor3f(1,0,0); myCircle(0.3,0.5,0.5);
glColor3f(0,1,0); myCircle(0.3,-0.5,0.5);
glColor3f(1,1,0); myCircle(0.3,-0.5,-0.5);
glColor3f(0,0,1); myCircle(0.3,0.5,-0.5);
沒有留言:
張貼留言