1.一樣先複習上周的茶壺
先建立一個專案後,依照Week01的步驟製作出專案,並且將程式碼刪除到勝十行
並改為茶壺的程式碼
#include <GL/glut.h>
static void display(void)
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("I am superman 04162753");
glutDisplayFunc(display);
glutMainLoop();
}

2.將滑鼠的座標在小黑窗顯示 並且按一下就會有兩個數值

3.加上一段程式碼 並且可以讓茶壺隨著滑鼠點的位置變色
加上:
glColor3f(1,x/300.0,y/300.0);
glutPostRedisplay();

4.再加上一個函式 讓顏色跟著滑鼠的移動而改變
加上:
void motion(int x, int y)
{
printf("%d %d\n",x,y);
glColor3f(1,x/500.0,y/500.0);
glutPostRedisplay();
}

5.可以在加上一段程式碼來自己畫圖
將畫茶壺的那段程式碼複製的座標
並且頭尾加上: glBegin(GL_TRIANGLE_FAN);
glEnd();
6.再加上一段畫圓的函式 就可以設定元的大小及範圍
(1)畫圓的函式:(這個是畫實心的圓)
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
for(float angle=0;angle<3.1415926*2;angle+=0.001){
glVertex2f(cos(angle),sin(angle));
}
glEnd();
glutSwapBuffers();
}

(2)畫圓的函式:(這個是畫空心的圓)
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_POLYGON);
for(float angle=0;angle<3.1415926*2;angle+=0.001){
glVertex2f(cos(angle),sin(angle));
}
glEnd();
glutSwapBuffers();
}
8.改數字可以把圓變成是橢圓

沒有留言:
張貼留言