week02
作業 1
先開啟第一周的glut檔案後複製以下文字
int main(int argc, char *argv[])
{
///上面是特別的 main()函式, 有很多參數
///上面是特別的 main()函式, 有很多參數
glutInit(&argc, argv); ///把 GLUT 開起來
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
///上面這行,把顯示的模式設定好!
glutCreateWindow("GLUT Shapes"); ///要開視窗
glutDisplayFunc(display); ///要顯示的對應函式
glutMainLoop(); ///最後用 main迴圈,壓在最後面
}
之後在前面寫
#include <GL/glut.h>
void display()
{
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
void display()
{
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
這樣就能印出一個茶杯
隨後將前面插入顏色和一個較大的茶杯
void display()
{
glColor3f(0,1,0);
glutSolidTeapot( 0.5 );
glColor3f(1,1,0);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
印出重疊顏色的茶杯
接著把綠色的茶杯拔掉,加上各邊起始點
void display()
{
glColor3f(0,1,0);
///glutSolidTeapot( 0.5 );
glBegin(GL_POLYGON);
glVertex2f( 0,+1);
glVertex2f(-1,-1);
glVertex2f(+1,-1);
glEnd();
glColor3f(1,1,0);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
{
glColor3f(0,1,0);
///glutSolidTeapot( 0.5 );
glBegin(GL_POLYGON);
glVertex2f( 0,+1);
glVertex2f(-1,-1);
glVertex2f(+1,-1);
glEnd();
glColor3f(1,1,0);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
把前面的綠色取消,然後把三個點各自設定成RGB
void display()
{
///glColor3f(0,1,0);
///glutSolidTeapot( 0.5 );
glBegin(GL_POLYGON);
glColor3f(1,0,0); glVertex2f( 0,+1);
glColor3f(0,1,0); glVertex2f(-1,-1);
glColor3f(0,0,1); glVertex2f(+1,-1);
glEnd();
glColor3f(1,1,0);
glutSolidTeapot( 0.3 );
glutSwapBuffers();
}
顯示RGB三角形背景黃茶杯
後面不用修改,前面改以下這樣
上方是背景設定,下方是本體設定
#include <GL/glut.h>
void display()
{
glColor3f(247/255.0,247/255.0,247/255.0);///
glBegin(GL_POLYGON);
glVertex2f(+1,+1);
glVertex2f(-1,+1);
glVertex2f(-1,-1);
glVertex2f(+1,-1);
glEnd();
glColor3f(244/255.0,209/255.0,33/255.0);///
glBegin(GL_POLYGON);
glVertex2f((45-100)/100.0,-(134-100)/100.0);
glVertex2f((36-100)/100.0,-(171-100)/100.0);
glVertex2f((108-100)/100.0,-(179-100)/100.0);
glVertex2f((104-100)/100.0,-(117-100)/100.0);
glEnd();
glutSwapBuffers();
}
出現皮卡丘?
作業 3
在中間和四個角落各放一個圓
#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.14; a+=0.01){
glVertex2f( r*cos(a)+x, r*sin(a)+y);
}
glEnd();
}
void display()
{
glColor3f(1,0,1); mycircle(0.6, 0, 0);
glColor3f(1,0,0); mycircle(0.3, 0.5, 0.5);
glColor3f(0,1,0); mycircle(0.3,-0.5, 0.5);
glColor3f(1,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("GLUT Shapes");
glutDisplayFunc(display);
glutMainLoop();
}












沒有留言:
張貼留言