2015年3月25日 星期三

02160154_周芮安,week05

製作3D圖形
先製作出一個四邊形
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();
產生出旋轉的四面體
#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,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);
                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;
void motion(int x,int y)
{
    angle += (x-oldX);
    oldX=x;
}

int main(int argc, char **argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("02160154flight");
    glutDisplayFunc(display);
    glutIdleFunc(display);
    glutMotionFunc(motion);///mouse motion drag動作移動的函式
    glutMainLoop();
}

沒有留言:

張貼留言