2023年3月22日 星期三

T week06

 1.

複製程式碼 出現在中心點 轉動的茶壺

#include <GL/glut.h>

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSolidSphere(0.02,30,30); ///正中心的圓心

    glPushMatrix();

        glRotatef(angle,0,0,1);

        glTranslatef(0.46,0.05,0);

        glutSolidTeapot(0.3);

    glPopMatrix();

    glutSwapBuffers();

    angle++;

}

int main(int argc, char *argv[])

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("week03");

    glutDisplayFunc(display);

    glutIdleFunc(display);

    glutMainLoop();

}



2.

#include <GL/glut.h>

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSolidSphere(0.02,30,30); ///正中心的圓心

    glutSolidTeapot(0.3); ///新增茶壺

    glPushMatrix();

        glTranslatef(0.49,0.13,0);

        glRotatef(angle,0,0,1);

        glTranslatef(0.46,0.05,0);

        glutSolidTeapot(0.3);

    glPopMatrix();

    glutSwapBuffers();

    angle++;

}

int main(int argc, char *argv[])

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("week03");

    glutDisplayFunc(display);

    glutIdleFunc(display);

    glutMainLoop();

}




#include <GL/glut.h>

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSolidSphere(0.02,30,30); ///正中心的圓心

    glutSolidTeapot(0.3); ///藍色茶壺

    glPushMatrix();

        glTranslatef(0.49,0.13,0); ///綠色茶壺

        glRotatef(angle,0,0,1);

        glTranslatef(0.46,0.05,0);

        glutSolidTeapot(0.3);

        glPushMatrix();

            glTranslatef(0.49,0.13,0); ///紅色茶壺

            glRotatef(angle,0,0,1);

            glTranslatef(0.46,0.05,0);

            glutSolidTeapot(0.3);

        glPopMatrix();

    glPopMatrix();

    glutSwapBuffers();

    angle++;

}

int main(int argc, char *argv[])

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("week03");

    glutDisplayFunc(display);

    glutIdleFunc(display);

    glutMainLoop();

}



3.

#include <GL/glut.h>
float angle = 0;
void drawHand()
{
    glPushMatrix();
        glScalef(1, 0.3, 0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix(); ///備份矩陣
        glRotatef(angle, 0, 0, 1);///(2)轉動
        glTranslatef(0.25, 0, 0);///(1)把旋轉中心,放到中心
        drawHand();
    glPopMatrix(); ///還原矩陣

    glutSwapBuffers();
    angle++;

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutCreateWindow("GLUT Shapes");

glutDisplayFunc(display);
        glutIdleFunc(display);

glutMainLoop();
}


#include <GL/glut.h>
float angle = 0;
void drawHand()
{
    glPushMatrix();
        glScalef(1, 0.3, 0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix(); ///備份矩陣
        ///glRotatef(angle, 0, 0, 1);    ///(2)轉動
        ///glTranslatef(0.25, 0, 0);///(1)把旋轉中心,放到中心
        drawHand();
        glPushMatrix();
            glRotatef(angle, 0, 0, 1);
            glTranslatef(0.25, 0, 0);
            drawHand();
        glPopMatrix();
    glPopMatrix(); ///還原矩陣

    glutSwapBuffers();
    angle++;

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutCreateWindow("GLUT Shapes");

glutDisplayFunc(display);
        glutIdleFunc(display);

glutMainLoop();
}



#include <GL/glut.h>
float angle = 0;
void drawHand()
{
    glPushMatrix();
        glScalef(1, 0.3, 0.3);
        glutSolidCube(0.5);
    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);
        drawHand();
        glPushMatrix();
            glTranslatef(0.25, 0, 0);
            glRotatef(angle, 0, 0, 1);
            glTranslatef(0.25, 0, 0);
            drawHand();
        glPopMatrix();
    glPopMatrix();

    glutSwapBuffers();
    angle++;

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutCreateWindow("GLUT Shapes");

glutDisplayFunc(display);
        glutIdleFunc(display);

glutMainLoop();
}



#include <GL/glut.h>
float angle = 0;
void drawHand()
{
    glPushMatrix();
        glScalef(1, 0.3, 0.3);
        glutSolidCube(0.5);
    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);
        drawHand();
        glPushMatrix();
            glTranslatef(0.25, 0, 0);
            glRotatef(angle, 0, 0, 1);
            glTranslatef(0.25, 0, 0);
            drawHand();
        glPopMatrix();
    glPopMatrix();/// 複製貼上

    glPushMatrix();
    glTranslatef(-0.25, 0, 0);
    glRotatef(angle, 0, 0, 1);
    glTranslatef(-0.25, 0, 0);
    drawHand();
    glPushMatrix();
        glTranslatef(-0.25, 0, 0);
        glRotatef(angle, 0, 0, 1);
        glTranslatef(-0.25, 0, 0);
        drawHand();
        glPopMatrix();
    glPopMatrix();

    glutSwapBuffers();
    angle++;

}

int main(int argc, char *argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

glutCreateWindow("GLUT Shapes");

glutDisplayFunc(display);
        glutIdleFunc(display);

glutMainLoop();
}



沒有留言:

張貼留言