Week02
Week02-1
打開Codeblocks延續上禮拜先建立OpenGLUT專案
並點開左邊的main.cpp
縮減程式碼並保留
#include <GL/glut.h>
int main(int argc, char *argv[ ])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("Week02");
glutDisplayFunc(display);
glutMainLoop( );
}
且新增以下程式碼
void display( )
{
glutSolidTeapot( 0.5 );
glutSwapBuffers( );
}
glColor3f(0,1,0); 變成綠色
glutSolidTeapot( 0.3 ); ( )內數值為茶壺大小
以及將19行的 glutCreateWindow
括號內改為Week02 出來的視窗就會變成Week02
執行修改後的程式後會顯示以下畫面
黃色的大茶壺以及綠色的小茶壺
Week02-2
(一)
新增一個新的GLUT專案並複製剛剛茶壺的程式碼
將程式碼保留一個茶壺
並新增三角形的新程式碼
glColor3f(0, 1, 0); 綠色
glBegin(GL_POLYGON);
glVertex2f(0,1); 上方
glVertex2f(-1,-1); 左下角
glVertex2f(+1,-1); 右下角
glEnd();
執行修改完的程式碼
就會跑出以下畫面 綠色三角形和黃色茶壺
(二)
修改剛剛的程式碼把每個頂點變成不同的顏色
讓色彩和頂點的程式放在同一行 讓其對應顏色
glColor3f(1, 0, 0); glVertex2f(0,1); 上面 > 紅色
glColor3f(0, 1, 0); glVertex2f(-1,-1); 左下角 > 綠色
glColor3f(0, 0, 1); glVertex2f(+1,-1); 右小角 > 藍色
執行修改好的程式碼
就會跑出以下畫面
不同顏色的三角形就出來囉
(三)
複製剛剛的程式碼在新增一個新的GLUT檔案
並貼上 且新增以下程式
利用小畫家來看座標來幫助我們寫程式
(四)
新增一個新的GLUT專案 這次目的是如何寫出圓形的圖形
複製剛剛的程式碼
修改裡面的程式碼為下列程式碼
#include <math.h>
void myCircle(float r, float x, float y)
{
glBegin(GL_POLYGON);
for(float a=0; a<=2*3.141592; a+=0.01){
glVertex2f( r*cos(a) +x, r*sin(a) +y);
}
glEnd();
}
void display()
{
glColor3f(233/255.0, 141/255.0, 128/255.0);
myCircle(0.5, 0, 0);
glColor3f(1,1,0);
myCircle(0.3,0.5,0.5);
glColor3f(1,0,0);
myCircle(0.3,-0.5,0.5);
glColor3f(0,1,0);
myCircle(0.3,-0.5,-0.5);
glColor3f(0,0,1);
myCircle(0.3,0.5,-0.5);
glutSwapBuffers();
}
沒有留言:
張貼留言