#include <GL/glut.h>
#include <stdio.h>
float angle = 0,angle2 = 0;
void display()
{
glEnable(GL_DEPTH_TEST);///開啟Depth test深度測試, 近的會擋到遠的, 遠的不會擋到近的
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClear(GL_COLOR_BUFFER_BIT); ///清畫面
glPushMatrix();
glRotatef(angle,0,1,0.8); ///在y軸 做旋轉
glRotatef(angle2, 1,0,0);
glColor3f(1,0,0); ///前面畫線
glBegin(GL_POLYGON);
glVertex3f( 0.2, 0.2, 0.8);
glVertex3f( 0.2,-0.2, 0.8);
glVertex3f(-0.2,-0.2, 0.8);
glVertex3f(-0.2, 0.2, 0.8);
glEnd();
glBegin(GL_POLYGON);
glVertex3f( 0.2, 0.2,-0.8);
glVertex3f( 0.2,-0.2,-0.8);
glVertex3f(-0.2,-0.2,-0.8);
glVertex3f(-0.2, 0.2,-0.8);
glEnd();
glBegin(GL_QUAD_STRIP);
glVertex3f( 0.2, 0.2, 0.8);
glVertex3f( 0.2, 0.2,-0.8);
glVertex3f( 0.2,-0.2, 0.8);
glVertex3f( 0.2,-0.2,-0.8);
glVertex3f(-0.2,-0.2, 0.8);
glVertex3f(-0.2,-0.2,-0.8);
glVertex3f(-0.2, 0.2, 0.8);
glVertex3f(-0.2, 0.2,-0.8);
glEnd();
glColor3f(0,0,0); ///後面畫線
glBegin(GL_LINE_LOOP);
glVertex3f( 0.2, 0.2, 0.8);
glVertex3f( 0.2,-0.2, 0.8);
glVertex3f(-0.2,-0.2, 0.8);
glVertex3f(-0.2, 0.2, 0.8);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex3f( 0.2, 0.2,-0.8);
glVertex3f( 0.2,-0.2,-0.8);
glVertex3f(-0.2,-0.2,-0.8);
glVertex3f(-0.2, 0.2,-0.8);
glEnd();
glBegin(GL_LINES);
glVertex3f( 0.2, 0.2, 0.8);
glVertex3f( 0.2, 0.2,-0.8);
glVertex3f( 0.2,-0.2, 0.8);
glVertex3f( 0.2,-0.2,-0.8);
glVertex3f(-0.2,-0.2, 0.8);
glVertex3f(-0.2,-0.2,-0.8);
glVertex3f(-0.2, 0.2, 0.8);
glVertex3f(-0.2, 0.2,-0.8);
glEnd();
glPopMatrix();
glFlush();
//angle+=0.01; ///角度 每次 改 0.01度
}
void motion(int x,int y)
{
printf("%d %d\n",x,y);
angle = x;
angle2 = y;
}
int main(int argc,char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DEPTH);//讓顯示的window有3D深度的感覺
glutCreateWindow("01160590李慎行");
//glutMouseFunc(mouse);///mouse的按鈕按下去Down,彈起來up
glutMotionFunc(motion);
glutDisplayFunc(display);///mouse的motion
glutIdleFunc(display);
glutMainLoop();
}
沒有留言:
張貼留言