2018年3月26日 星期一

week5_竜が我が敌を喰らう

複習:
    旋轉

本周主題:
    TRT特定自轉

1.原本旋轉 以車為中心自轉

2.將 glTranslatfe glRotatef 交換
以右圖中心為中心點旋轉


*****重點*****
(老師的圖

3.旋轉的茶壺
茶壺手把以視窗中心為中心點做旋轉




4.多個茶壺連接(旋轉  左右不同向

程式碼
#include <Gl/glut.h>
float angle=0;
void motion(int x,int y)
{
    angle=x;
    glutPostRedisplay();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glutSolidTeapot(0.3);
        glPushMatrix();
            glTranslatef(0.5,0.15,0);
            glRotatef(angle,0,0,1);
            glTranslatef(0.45,-0.08,0);
            glutSolidTeapot(0.3);

            glPushMatrix();
                glTranslatef(0.5,0.15,0);
                glRotatef(angle,0,0,1);
                glTranslatef(0.45,-0.08,0);
                glutSolidTeapot(0.3);
            glPopMatrix();
        glPopMatrix();


        glPushMatrix();
            glTranslatef(-.5,0.15,0);
            glRotatef(angle,0,0,1);
            glTranslatef(-0.45,-0.08,0);
            glutSolidTeapot(0.3);

            glPushMatrix();
                glTranslatef(-0.5,0.15,0);
                glRotatef(angle,0,0,1);
                glTranslatef(-0.45,-0.08,0);
                glutSolidTeapot(0.3);
            glPopMatrix();
        glPopMatrix();
    glutSwapBuffers();
}
int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("05160372");
    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMainLoop();
}

5.多個茶壺連接(旋轉  左右同向
將上方程式碼的  glTranslatef 與 glRotatef 位置互換

沒有留言:

張貼留言