2015年3月19日 星期四

02160056簡瑜萱 WEEK4

1)作業表揚
2)本周重點:移動、旋轉、放大縮小
3)3D物件

TODO:下載課本範例  http://jsyeh.org/3dcg10

載windows/解壓縮/ Transformation

Translate移動  Rotate旋轉 Scale放大縮小



到http://www.transmissionzero.co.uk/software/freeglut-devel/載MinGW/解壓縮/lib/複製改libglut32/codeblocks/file/new/project/GLUT


#include<GL/glut.h>

void display()
{
    glTranslatef(0.8,0.8,0); 移動
    glutSolidTeapot(0.3);
    glFlush();
}
int main(int argc,char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160056簡瑜萱");
    glutDisplayFunc(display);
    glutMainLoop();
}

做一個甜甜圈


#include<GL/glut.h>

void display()
{
    ///glutSolidTeapot(0.3);
    glutsolidTorus(0.3,0.7,30,30);(內徑r,外徑R,橫切,縱切)
    glFlush();
}
int main(int argc,char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160056簡瑜萱");
    glutDisplayFunc(display);
    glutMainLoop();
}






#include<GL/glut.h>

void display()
{
    ///glutSolidTeapot(0.8,0.8,0);
    glutWireTorus(0.3,0.7,30,30);
    glFlush();
}
int main(int argc,char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160056簡瑜萱");
    glutDisplayFunc(display);
    glutMainLoop();
}


甜甜圈未清畫面亂掉

#include<GL/glut.h>
float angle=0;
void display()
{
    glRotatef(angle, 1,1,0);
    glutWireTorus(0.3,0.7,30,30);
    glFlush();
    angle+=2;
}
int main(int argc,char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160056簡瑜萱");
    glutDisplayFunc(display);
    glutMainLoop();
}

甜甜圈旋轉


#include<GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);清畫面
    glRotatef(angle, 1,1,0);
    glutWireTorus(0.3,0.7,30,30);
    glFlush();
    angle+=2;
}
int main(int argc,char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160056簡瑜萱");
    glutDisplayFunc(display);
    glutMainLoop();
}


甜甜圈自動旋轉

#include<GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT);畫面亂清畫面
    glPushMatrix();畫面亂備份Mrtrix
      glRotatef(angle, 1,1,0);
      glutWireTorus(0.3,0.7,30,30);
    glPopMatrix(); 畫面會亂所以還原Matrix
    glFlush();    衝出圖形
    angle+=0.1;
}
int main(int argc,char **argv)
{
    glutInit(&argc, argv);
    glutCreateWindow("02160056簡瑜萱");
    glutDisplayFunc(display);  當電腦需要display時,去呼叫的函式display()
    glutIdleFunc(display);
    glutMainLoop();
}











沒有留言:

張貼留言