2015年3月25日 星期三

02160092_黃冠瑜_week05

#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
      glColor3f(1,0,0);
      glVertex3f(0.1,0.1,0.8);
      glVertex3f(-0.1,0.1,0.8);
      glVertex3f(-0.1,-0.1,0.8);
      glVertex3f(0.1,-0.1,0.8);
    glEnd();

    glFlush();
}
int main(int argc,char **argv)
{
                                                                                        glutInit(&argc,argv);
                                                                                        glutCreateWindow("02160092flight");
                                                                                        glutDisplayFunc(display);
                                                                                        glutMainLoop();
                                                                                     }




#include <GL/glut.h>
float angle=0;   //角度設為0
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
        glRotatef( angle,0,1,0);  //旋轉角度
        glBegin(GL_POLYGON);
            glColor3f(1,0,0);
            glVertex3f(0.1,0.1,0.8);
            glVertex3f(-0.1,0.1,0.8);
            glVertex3f(-0.1,-0.1,0.8);
            glVertex3f(0.1,-0.1,0.8);
        glEnd();
    glPopMatrix();
                                                                                        angle +=0.01;
                                                                                        glFlush();
                                                                                    }
                                                                                    int main(int argc,char **argv)
                                                                                    {
                                                                                         glutInit(&argc,argv);
                                                                                         glutCreateWindow("02160092flight");
                                                                                         glutDisplayFunc(display);
                                                                                         glutIdleFunc(display);
                                                                                          glutMainLoop();
                                                                                     }


















#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
        glRotatef( angle,0,1,0.5);
        glBegin(GL_POLYGON);  //第1個長方形
           glColor3f(1,0,0);
           glVertex3f(0.1,0.1,0.8);
           glVertex3f(-0.1,0.1,0.8);
           glVertex3f(-0.1,-0.1,0.8);
           glVertex3f(0.1,-0.1,0.8);
        glEnd();

        glBegin(GL_POLYGON);  //第2個長方形
           glColor3f(1,0,0);
           glVertex3f(0.1,0.1,-0.8);
           glVertex3f(-0.1,0.1,-0.8);
           glVertex3f(-0.1,-0.1,-0.8);
           glVertex3f(0.1,-0.1,-0.8);
        glEnd();
        glBegin(GL_QUAD_STRIP); //連接1&2的長方形頂點形成一個3D立體形狀
           glVertex3f(0.1,0.1,0.8);
           glVertex3f(0.1,0.1,-0.8);
           glVertex3f(-0.1,0.1,0.8);
           glVertex3f(-0.1,0.1,-0.8);
           glVertex3f(-0.1,-0.1,0.8);
           glVertex3f(-0.1,-0.1,-0.8);
           glVertex3f(0.1,-0.1,0.8);
           glVertex3f(0.1,-0.1,-0.8);                                                                                                                       glEnd();
        glPopMatrix();
        angle +=0.01;
        glFlush();
        }
        int main(int argc,char **argv)
        {
          glutInit(&argc,argv);
          glutCreateWindow("02160092flight");
          glutDisplayFunc(display);
          glutIdleFunc(display);
          glutMainLoop();
        }



wow~~~把長方形的中間改一下顏色就可以更加凸顯立體感覺了!!!

















#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
        glRotatef( angle,0,1,0.5);
        glBegin(GL_POLYGON);
            glColor3f(1,0,0);
            glVertex3f(0.1,0.1,0.8);
            glVertex3f(-0.1,0.1,0.8);
            glVertex3f(-0.1,-0.1,0.8);
            glVertex3f(0.1,-0.1,0.8);
        glEnd();

        glBegin(GL_POLYGON);
            glColor3f(1,1,0);  //改變長方形中間顏色
            glVertex3f(0.1,0.1,-0.8);
            glVertex3f(-0.1,0.1,-0.8);
            glVertex3f(-0.1,-0.1,-0.8);
            glVertex3f(0.1,-0.1,-0.8);
        glEnd();

        glBegin(GL_QUAD_STRIP);
            glVertex3f(0.1,0.1,0.8);
            glVertex3f(0.1,0.1,-0.8);
            glVertex3f(-0.1,0.1,0.8);
            glVertex3f(-0.1,0.1,-0.8);
            glVertex3f(-0.1,-0.1,0.8);
            glVertex3f(-0.1,-0.1,-0.8);
            glVertex3f(0.1,-0.1,0.8);
            glVertex3f(0.1,-0.1,-0.8);
        glEnd();
    glPopMatrix();
    angle +=0.01;
    glFlush();
}
int oldX=0;  //宣告一個舊的x座標=0
void motion(int x,int y)
{
    angle +=(x-oldX);  //利用新的x座標減掉舊的得到新的角度
    oldX=x;
}
int main(int argc,char **argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("02160092flight");
    glutDisplayFunc(display);
    glutIdleFunc(display);
    glutMotionFunc(motion);  //滑鼠移動控制
    glutMainLoop();
}

結束今日上課課程~

沒有留言:

張貼留言