2015年3月25日 星期三

02161095 陳薇亘 week05

week05
(1)目標:建3D模型
    1 先畫3D方塊
(2)滑鼠轉動




#include <GL / glut.h>


{
    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);//做一個3D的圖形
    glEnd();
    glFlush();
}
int main(int argc,char **argv )
{
    glutInit(&argc,argv);
    glutCreateWindow(“02161095flight”);
    glutDisplayFunc(display);
    glutMainLoop();
}
#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();//備份matrix
    glRotatef(angle,   0,1,0);(角度 x,y,z)
    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();//還原matrix
    angle+=0.01;
    glFlush();
}
int main(int argc,char **argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("02161095flight");

    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);;
        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 main(int argc,char **argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("02161095flight");

    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);;
        glColor3f(1,0.5,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.5);
        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;
void motion(int x,int y)//滑鼠移動物體
{
    angle+=(x-oldX);
    oldX=x;
}
int main(int argc,char **argv)
{
    glutInit(&argc,argv);
    glutCreateWindow("02161095flight");

    glutDisplayFunc(display);
    glutIdleFunc(display);
    glutMotionFunc(motion);//mouse motion drag動作移動函式
    glutMainLoop();
}


沒有留言:

張貼留言