先畫出一個圓形旋轉
#include <gl/glut.h>
float co=0;
void play()
{
glClear(GL_COLOR_BUFFER_BIT);
glRotatef(co,0,1,0);
glutWireTorus(0.3,0.7,30,30);
glFlush();
co+=0.01;
if(co>0.5)co=0;
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutCreateWindow("02163015");
glutDisplayFunc(play);
glutIdleFunc(play);
glutMainLoop();
}
改成2個方形 圍著中心轉動
#include <gl/glut.h>
float co=0;
void play()
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(co,0,1,0);
glBegin(GL_LINE_LOOP);
glVertex3f( 0.2, 0.2 , 0.5);
glVertex3f( 0.2,-0.2 , 0.5);
glVertex3f(-0.2,-0.2 , 0.5);
glVertex3f(-0.2, 0.2 , 0.5);
glEnd();
glBegin(GL_POLYGON);
glVertex3f( 0.2, 0.2 ,-0.5);
glVertex3f( 0.2,-0.2 ,-0.5);
glVertex3f(-0.2,-0.2 ,-0.5);
glVertex3f(-0.2, 0.2 ,-0.5);
glEnd();
glPopMatrix();
glFlush();
co+=0.01;
if(co>50){co*=-1;}
else{co+=0.1;}
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutCreateWindow("02163015");
glutDisplayFunc(play);
glutIdleFunc(play);
glutMainLoop();
}
3.畫成空心長方
#include <gl/glut.h>
float co=0;
void play()
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix();
glRotatef(co,0,1,1);
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex3f( 0.2, 0.2 , 0.5);
glVertex3f( 0.2,-0.2 , 0.5);
glVertex3f(-0.2,-0.2 , 0.5);
glVertex3f(-0.2, 0.2 , 0.5);
glEnd();
glBegin(GL_POLYGON);
glVertex3f( 0.2, 0.2 ,-0.5);
glVertex3f( 0.2,-0.2 ,-0.5);
glVertex3f(-0.2,-0.2 ,-0.5);
glVertex3f(-0.2, 0.2 ,-0.5);
glEnd();
glBegin(GL_QUAD_STRIP);
glVertex3f( 0.2, 0.2 , 0.5);
glVertex3f( 0.2, 0.2 ,-0.5);
glVertex3f( 0.2,-0.2 , 0.5);
glVertex3f( 0.2,-0.2 ,-0.5);
glVertex3f(-0.2,-0.2 , 0.5);
glVertex3f(-0.2,-0.2 ,-0.5);
glVertex3f(-0.2, 0.2 , 0.5);
glVertex3f(-0.2, 0.2 ,-0.5);
glEnd();
glColor3f(0,0,0);//線
glBegin(GL_LINE_LOOP);
glVertex3f( 0.2, 0.2 , 0.5);
glVertex3f( 0.2,-0.2 , 0.5);
glVertex3f(-0.2,-0.2 , 0.5);
glVertex3f(-0.2, 0.2 , 0.5);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f( 0.2, 0.2 ,-0.5);
glVertex3f( 0.2,-0.2 ,-0.5);
glVertex3f(-0.2,-0.2 ,-0.5);
glVertex3f(-0.2, 0.2 ,-0.5);
glEnd();
glBegin(GL_LINES);
glVertex3f( 0.2, 0.2 , 0.5);
glVertex3f( 0.2, 0.2 ,-0.5);
glVertex3f( 0.2,-0.2 , 0.5);
glVertex3f( 0.2,-0.2 ,-0.5);
glVertex3f(-0.2,-0.2 , 0.5);
glVertex3f(-0.2,-0.2 ,-0.5);
glVertex3f(-0.2, 0.2 , 0.5);
glVertex3f(-0.2, 0.2 ,-0.5);
glEnd();
glPopMatrix();
glFlush();
co+=0.01;
if(co>100){co*=-1;}
else{co+=0.1;}
}
int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutCreateWindow("02163015");
glutDisplayFunc(play);
glutIdleFunc(play);
glutMainLoop();
}
沒有留言:
張貼留言