點擊http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/網頁下載data、win32、glut32.dll檔案
將win32與data壓縮檔解壓縮 data資料夾與glut32.dll檔案丟進windows資料夾裡面
2.實作
在左示窗,按右鍵點 Toggle bit vertices 可以切Big點
也可以切換顏色
在右視窗則可以用左鍵切換數字和按右鍵切換形狀
2.延續上次的做法,將GLUT.project打開後,將程式碼打開後刪除
改成
#include <GL/glut.h>
void display()
{
glutSolidTeapot(0.3);
glutSwapBuffers();
}
int main(int argc ,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("Week03");
glutDisplayFunc(display);
glutMainLoop();
}
編譯執行後就可創造出茶壺
程式碼加上glColor3f(1.00,0,1.00)式子的話即可改顏色
例如:
#include <GL/glut.h>
void display()
{
glColor3f(1.00,0,1.00);//改顏色
glutSolidTeapot(0.3);//畫實心的茶壺
glutSwapBuffers();//最後buffer做交換秀出
}
int main(int argc ,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("Week03");
glutDisplayFunc(display);
glutMainLoop();
}
即可創造出有顏色的茶壺
4.回家作業
#include <GL/glut.h>
void display()
{
glBegin(GL_POLYGON);
glColor3f(105/255.0,163/255.0,27/255.0);
glVertex2d((44-100)/100.0,-(15-100)/100.0);
glVertex2d((40-100)/100.0,-(50-100)/100.0);
glVertex2d((42-100)/100.0,-(90-100)/100.0);
glVertex2d((59-100)/100.0,-(137-100)/100.0);
glVertex2d((88-100)/100.0,-(164-100)/100.0);
glVertex2d((101-100)/100.0,-(175-100)/100.0);
glVertex2d((102-100)/100.0,-(174-100)/100.0);
glVertex2d((113-100)/100.0,-(179-100)/100.0);
glVertex2d((133-100)/100.0,-(173-100)/100.0);
glVertex2d((58-100)/100.0,-(19-100)/100.0);
glVertex2d((94-100)/100.0,-(28-100)/100.0);
glVertex2d((58-100)/100.0,-(19-100)/100.0);
glVertex2d((98-100)/100.0,-(33-100)/100.0);
glVertex2d((125-100)/100.0,-(50-100)/100.0);
glVertex2d((145-100)/100.0,-(83-100)/100.0);
glVertex2d((147-100)/100.0,-(93-100)/100.0);
glVertex2d((157-100)/100.0,-(116-100)/100.0);
glVertex2d((157-100)/100.0,-(132-100)/100.0);
glVertex2d((157-100)/100.0,-(134-100)/100.0);
glVertex2d((155-100)/100.0,-(175-100)/100.0);
glVertex2d((145-100)/100.0,-(167-100)/100.0);
glVertex2d((132-100)/100.0,-(173-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d((48-100)/100.0,-(13-100)/100.0);
glVertex2d((91-100)/100.0,-(94-100)/100.0);
glVertex2d((137-100)/100.0,-(188-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d((38-100)/100.0,-(48-100)/100.0);
glVertex2d((55-100)/100.0,-(56-100)/100.0);
glVertex2d((70-100)/100.0,-(57-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d((38-100)/100.0,-(54-100)/100.0);
glVertex2d((59-100)/100.0,-(76-100)/100.0);
glVertex2d((88-100)/100.0,-(95-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d((45-100)/100.0,-(107-100)/100.0);
glVertex2d((96-100)/100.0,-(143-100)/100.0);
glVertex2d((118-100)/100.0,-(144-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d((48-100)/100.0,-(13-100)/100.0);
glVertex2d((91-100)/100.0,-(94-100)/100.0);
glVertex2d((137-100)/100.0,-(188-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d(-(38-100)/100.0,(48-100)/100.0);
glVertex2d(-(55-100)/100.0,(56-100)/100.0);
glVertex2d(-(70-100)/100.0,(57-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d(-(38-100)/100.0,(54-100)/100.0);
glVertex2d(-(59-100)/100.0,(76-100)/100.0);
glVertex2d(-(88-100)/100.0,(95-100)/100.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f(124/255.0,190/255.0,44/255.0);
glVertex2d(-(45-100)/100.0,(107-100)/100.0);
glVertex2d(-(96-100)/100.0,(143-100)/100.0);
glVertex2d(-(118-100)/100.0,(144-100)/100.0);
glEnd();
glutSwapBuffers();
}
int main(int argc ,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("Week03");
glutDisplayFunc(display);
glutMainLoop();
}
沒有留言:
張貼留言