2021年3月29日 星期一

如果放更多天假 week06

 1.物體旋轉


#include <GL/glut.h>

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);


    glPushMatrix();

        glRotatef(angle++, 0, 0, 1);

        glutSolidCube(1);

    glPopMatrix();

    glutSwapBuffers();

}

int main(int argc, char **argv)

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("08160431如 week05");


    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

}


2.變換旋轉中心點


#include <GL/glut.h>

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();

        ///glTranslatef(0,0,0);

        glRotatef(angle++, 0, 0, 1);

        glTranslatef(-0.25,0,0);


        glScalef(0.5,0.1,0.1);

        glutSolidCube(1);

    glPopMatrix();

    glutSwapBuffers();

}

int main(int argc, char **argv)

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("08160431如 week05");


    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

}



3.手臂旋轉



#include <GL/glut.h>

float angle=0;

void hand()

{

    glPushMatrix();

        glScalef(0.5,0.1,0.1);

        glutSolidCube(1);

    glPopMatrix();

}

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();

        glTranslatef(-0.25,0,0);

        glRotatef(angle++, 0, 0, 1);

        glTranslatef(-0.25,0,0);

        hand();

    glPopMatrix();

    hand();

    glutSwapBuffers();

}

int main(int argc, char **argv)

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("08160431如 week05");


    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

}


4.左右手


#include <GL/glut.h>

float angle=0;

void hand()

{

    glPushMatrix();

        glScalef(0.5,0.1,0.1);

        glutSolidCube(1);

    glPopMatrix();

}

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();

        glTranslatef(-0.25,0,0);

        glRotatef(angle, 0, 0, 1);

        glTranslatef(-0.25,0,0);

        hand();

        glPushMatrix();

            glTranslatef(-0.25,0,0);

            glRotatef(angle, 0, 0, 1);

            glTranslatef(-0.25,0,0);

            hand();

        glPopMatrix();

    glPopMatrix();



     glPushMatrix();

        glTranslatef(+0.25,0,0);

        glRotatef(-angle, 0, 0, 1);

        glTranslatef(+0.25,0,0);

        hand();

        glPushMatrix();

            glTranslatef(+0.25,0,0);

            glRotatef(-angle, 0, 0, 1);

            glTranslatef(+0.25,0,0);

            hand();

        glPopMatrix();

    glPopMatrix();


    glutSwapBuffers();

    angle++;

}

int main(int argc, char **argv)

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("08160431如 week05");


    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

}


沒有留言:

張貼留言

Week18期末作業(橘貓的跳舞熊熊)

 期末作業(橘貓的跳舞熊熊) 影片: https://youtu.be/R89tptMaQZw 程式碼: #include <opencv/highgui.h> #include <opencv/cv.h> #include <GL/glut.h...