2015年3月26日 星期四

02163015_江世光

1.先複習上禮拜內容

先畫出一個圓形旋轉
#include <gl/glut.h>

float co=0;
void play()
{

    glClear(GL_COLOR_BUFFER_BIT);
    glRotatef(co,0,1,0);
    glutWireTorus(0.3,0.7,30,30);

    glFlush();

    co+=0.01;
    if(co>0.5)co=0;
}
int main(int argc,char *argv[])
{
    glutInit(&argc,argv);
    glutCreateWindow("02163015");
    glutDisplayFunc(play);
    glutIdleFunc(play);
    glutMainLoop();
}
















改成2個方形 圍著中心轉動
#include <gl/glut.h>

float co=0;
void play()
{

    glClear(GL_COLOR_BUFFER_BIT);

    glPushMatrix();
        glRotatef(co,0,1,0);
        glBegin(GL_LINE_LOOP);
            glVertex3f( 0.2, 0.2 , 0.5);
            glVertex3f( 0.2,-0.2 , 0.5);
            glVertex3f(-0.2,-0.2 , 0.5);
            glVertex3f(-0.2, 0.2 , 0.5);
        glEnd();

        glBegin(GL_POLYGON);
            glVertex3f( 0.2, 0.2 ,-0.5);
            glVertex3f( 0.2,-0.2 ,-0.5);
            glVertex3f(-0.2,-0.2 ,-0.5);
            glVertex3f(-0.2, 0.2 ,-0.5);
        glEnd();

    glPopMatrix();

    glFlush();

    co+=0.01;
    if(co>50){co*=-1;}
    else{co+=0.1;}
}
int main(int argc,char *argv[])
{
    glutInit(&argc,argv);
    glutCreateWindow("02163015");
    glutDisplayFunc(play);
    glutIdleFunc(play);
    glutMainLoop();
}

3.畫成空心長方
#include <gl/glut.h>

float co=0;
void play()
{

    glClear(GL_COLOR_BUFFER_BIT);

    glPushMatrix();
        glRotatef(co,0,1,1);
        glColor3f(1,0,0);
        glBegin(GL_POLYGON);
            glVertex3f( 0.2, 0.2 , 0.5);
            glVertex3f( 0.2,-0.2 , 0.5);
            glVertex3f(-0.2,-0.2 , 0.5);
            glVertex3f(-0.2, 0.2 , 0.5);
        glEnd();

        glBegin(GL_POLYGON);
            glVertex3f( 0.2, 0.2 ,-0.5);
            glVertex3f( 0.2,-0.2 ,-0.5);
            glVertex3f(-0.2,-0.2 ,-0.5);
            glVertex3f(-0.2, 0.2 ,-0.5);
        glEnd();
        glBegin(GL_QUAD_STRIP);
            glVertex3f( 0.2, 0.2 , 0.5);
            glVertex3f( 0.2, 0.2 ,-0.5);
            glVertex3f( 0.2,-0.2 , 0.5);
            glVertex3f( 0.2,-0.2 ,-0.5);
            glVertex3f(-0.2,-0.2 , 0.5);
            glVertex3f(-0.2,-0.2 ,-0.5);
            glVertex3f(-0.2, 0.2 , 0.5);
            glVertex3f(-0.2, 0.2 ,-0.5);
        glEnd();

        glColor3f(0,0,0);//線
        glBegin(GL_LINE_LOOP);
            glVertex3f( 0.2, 0.2 , 0.5);
            glVertex3f( 0.2,-0.2 , 0.5);
            glVertex3f(-0.2,-0.2 , 0.5);
            glVertex3f(-0.2, 0.2 , 0.5);
        glEnd();
        glBegin(GL_LINE_LOOP);
            glVertex3f( 0.2, 0.2 ,-0.5);
            glVertex3f( 0.2,-0.2 ,-0.5);
            glVertex3f(-0.2,-0.2 ,-0.5);
            glVertex3f(-0.2, 0.2 ,-0.5);
        glEnd();
        glBegin(GL_LINES);
            glVertex3f( 0.2, 0.2 , 0.5);
            glVertex3f( 0.2, 0.2 ,-0.5);
            glVertex3f( 0.2,-0.2 , 0.5);
            glVertex3f( 0.2,-0.2 ,-0.5);
            glVertex3f(-0.2,-0.2 , 0.5);
            glVertex3f(-0.2,-0.2 ,-0.5);
            glVertex3f(-0.2, 0.2 , 0.5);
            glVertex3f(-0.2, 0.2 ,-0.5);

        glEnd();

    glPopMatrix();

    glFlush();

    co+=0.01;
    if(co>100){co*=-1;}
    else{co+=0.1;}
}
int main(int argc,char *argv[])
{
    glutInit(&argc,argv);
    glutCreateWindow("02163015");
    glutDisplayFunc(play);
    glutIdleFunc(play);
    glutMainLoop();
}

















沒有留言:

張貼留言