week02-1
依照上週方法開啟GLUT
從原始檔案中剪貼出幾行程式碼執行
執行出一個沒有顏色茶壺
加一行可以增加色彩的程式碼先設定茶壺為黃色
再設定成綠色
把視窗名字改成week02
跑出來的茶壺是黃色跟綠色的三角形
#include <GL/glut.h>
void display()
{
glBegin(GL_POLYGON);
glColor3f(1,0,0); glVertex2f(0,1);把前面的Vertex 改成Color再增加X,Y軸
glColor3f(0,1,0); glVertex2f(-1,-1);
glColor3f(0,0,1); glVertex2f(+1,-1);
glEnd();
glColor3f(1,1,0);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week02");
glutDisplayFunc(display);
glutMainLoop();
}
利用數學公式可知圓形是3.141592可是一個只有半圓形所以要*2才會有一個圓形,再利用cos=X,sin=Y帶入程式中,再輸入周圍四個點的位置
#include <GL/glut.h>
#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();
}
int main(int argc, char * argv[] )
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week02");
glutDisplayFunc(display);
glutMainLoop();
}








沒有留言:
張貼留言