Week02-1-1
用上週所教的方式開啟GLUT的檔案
然後開啟資料夾中的main.cpp 並修改其中的程式碼
從一百多行的程式碼縮減成一下的程式碼
#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();
}
將程式碼改為以下的樣子
glColor3f(1,1,0);///顏色黃色
glutSolidTeapot(0.5);///畫出實心的大茶壺
glColor3f(0,1,0);///顏色綠色
glutSolidTeapot(0.3);///畫出實心的小茶壺
就可以得到大的黃色茶壺和小的綠色茶壺了,如下圖:
再重新開啟一個GLUT檔案
複製一樣的程式碼並新增主要的幾個程式碼如下
glBegin(GL_POLYGON);
glVertex2f(0,1);///上面
glVertex2f(-1,-1);///左下角
glVertex2f(+1,-1);///右下角
glEnd();
就會出現酷酷的綠色三角形和茶壺了
將程式碼在稍微修改一下後:
把glColor3f放在glVertex2f
就可以更改三角形的顏色了,如下圖
做回家作業
開啟新的檔案後並接續上個程式碼套用20個頂點
glColor3f(1,0,0);glVertex2f((65-100)/100.0, -(53-100)/100.0);
glColor3f(0,1,0);glVertex2f((34-100)/100.0, -(138-100)/100.0);
glColor3f(0,0,1);glVertex2f((59-100)/100.0, -(138-100)/100.0);
glColor3f(1,0,0);glVertex2f((87-100)/100.0, -(53-100)/100.0);
glColor3f(0,1,0); glVertex2f((0-100)/100.0, -(10-100)/100.0);
glColor3f(0,0,1); glVertex2f((25-100)/100.0, -(20-100)/100.0);
glColor3f(1,0,0);glVertex2f((50-100)/100.0, -(30-100)/100.0);
glColor3f(0,0,1);glVertex2f((75-100)/100.0, -(40-100)/100.0);
glColor3f(0,0,1); glVertex2f((154-100)/100.0, -(100-100)/100.0);
glColor3f(1,0,0); glVertex2f((179-100)/100.0, -(100-100)/100.0);
glColor3f(0,1,0); glVertex2f((123-100)/100.0, -(77-100)/100.0);
glVertex2f((100-100)/100.0, -(77-100)/100.0);
glColor3f(1,0,0); glVertex2f((160-100)/100.0, -(86-100)/100.0);
glColor3f(0,1,0); glVertex2f((170-100)/100.0, -(86-100)/100.0);
glVertex2f((180-100)/100.0, -(67-100)/100.0);
glColor3f(1,0,0); glVertex2f((190-100)/100.0, -(50-100)/100.0);
glColor3f(0,1,0); glVertex2f((53-100)/100.0, -(55-100)/100.0);
glVertex2f((77-100)/100.0, -(55-100)/100.0);
glColor3f(1,0,0); glVertex2f((66-100)/100.0, -(22-100)/100.0);
glColor3f(0,1,0); glVertex2f((44-100)/100.0, -(22-100)/100.0);
我所做的頂點並搭上紅綠藍:如下圖
應用更多色彩使用這個程式:
glColor3f(233/255.0,141/255.0,128/255.0);
結果如下:
Week02-3-2
如何用程式畫出圓:
一樣開啟一個新的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();
}
結果如下圖:
沒有留言:
張貼留言