2019年4月26日 星期五

ㄟOWOㄏ - Week10

{\__/}
( • - •)
❤️ < \

\程式碼理解順序/



程式碼由中間開始由內至外的理解

ex : STEP 1 →Scale調成小小的人
       STEP 2 →Rotate旋轉90度的小小的人
       STEP 3 →Translate把旋轉90度的小小的人移到別的位置


\來實作看看吧/



#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.635,0);//把會動的手移動到茶壺的嘴上
        glRotatef(angle,0,0,1);//手的旋轉
        glTranslatef(0.6,0,0);//把旋轉中心先移到畫面的中心

        glRotatef(-90,0,1,0);
        glutWireCone(0.1,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();
}




沒有留言:

張貼留言