2019年4月26日 星期五

week10

今天教的重點是了解 Translate Rotate 的順序改變會產生怎樣的結果





今天最重要的是了解TRT轉動的用法
首先 先寫出茶壺程式碼 然後再加上一個圓錐


上面加上可以讓他圓錐在X軸轉動的程式碼

之後希望圓錐能在茶壺口轉動就會用到TRT

先把茶壺移成側面 在來是把茶壺能上下轉動(照著Z軸)

最後再把頂點位置對到茶壺口
執行結果


程式碼
#include <GL/glut.h>
float angle =0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glTranslatef(0, 0.5,0);
        glutWireTeapot(0.3);///茶壺圖形(茶壺大小)
    glPopMatrix();
    glPushMatrix();
        glTranslatef(0.51,0.63,0);
        glRotatef(angle,0,0,1);
        glTranslatef(0.6,0,0);

        glRotatef(-90,0,1,0);
        glutWireCone(0.3,0.6,10,10);
    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 TRT");///視窗名稱
    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMainLoop();
}

沒有留言:

張貼留言