2015年3月26日 星期四

Week05_李慎行


#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();
}

沒有留言:

張貼留言