2019年4月25日 星期四

Week010_Summer

今日目標:

1、期中考:OpenGL必背10行函式
2、複習:移動、旋轉、縮放
3、主題:T-R-T旋轉(改變旋轉軸)
4、主題:glut





下載"win32"、"data"、"glut32.dll" 三個檔案並解壓縮放入對應資料夾中


()

右鍵 - Swap translate/rotate  ↓


 02 解壓縮完成且檔案放置完後,開啟windows/Transformation.exe
觀察在右邊轉動的車子 v.s. 繞很大圈圈的車子

自轉           v.s.            公轉
                                                             glTranslatef();                glRotatef();
                                                             glRotatef();                    glTranslatef();







 04 做出一個茶壺,並給他一個甜筒,改變旋轉軸,讓他可以看起來像手手(?)


甜筒T-R-T程式碼:

#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0,0.5,0);   ///這是往上移動的茶壺
        glutSolidTeapot( 0.3 );   ///This is a Teapot
    glPopMatrix();

    glPushMatrix();
        //glutSolidSphere(0.3,30,30);
    glPopMatrix();

    glPushMatrix();
        glTranslatef(0.5,0.625,0);   ///(3)把它掛在你要的地方
        glRotatef(angle,0,0,1);     ///(1)先有個轉動,但怪怪的
        glTranslatef(0.6,0,0);      ///(2)要更早去移動旋轉中心

        glRotatef(-90,0,1,0);   ///(0)轉動90度的Cone
        glutSolidCone(0.2,0.6,30,30);   ///直直的Cone
    glPopMatrix();
    glutSwapBuffers();
}
void motion(int x,int y)
{
    angle = x;
    display();
}
int main(int argc, char**argv)
{

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("week10");
    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMainLoop();
}

沒有留言:

張貼留言