2023年3月22日 星期三

Clawdeen-week06

 week06-2


codeblock開一個

以把手為中心旋轉

#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("week04");
    glutDisplayFunc(display);
    glutIdleFunc(display); 
    glutMainLoop();

}



week06-3


#include <GL/glut.h>
        float angle=0;
        void display()
        {
                glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清背景

                glColor3f(0,1,0);///綠色的身體
                glPushMatrix();
                        glutSolidCube(0.5);
        
                        glPushMatrix();
                                    glTranslatef(0.25,0.25,0);///(3)把整個東西掛在右上角
                                    glRotated(angle,0,0,1);///(2)轉動
                                    glTranslatef(0.25,0.25,0);///(1)把旋轉中心放到中心
                                    ///glTranslatef(0.5,0.5,0);///step03-3先註解掉
                                    glColor3f(1,0,0);///紅色的手臂
                            glutSolidCube(0.5);
                    glPopMatrix();
                glPopMatrix();

                glutSwapBuffers();
                angle++;///角度++
            }
        int main(int argc, char *argv[])
        {
                glutInit(&argc, argv);
                glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
                glutCreateWindow("week05");

                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);
    glTranslatef(0.25,0,0);
    drawHand();
    glPopMatrix();

    glutSwapBuffers();
    angle++; 

}

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

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week04");

    glutDisplayFunc(display);

    glutIdleFunc(display); 

    glutMainLoop();

}     




03-2

#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();

    glutSwapBuffers();
    angle++;

}

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

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week05");

    glutDisplayFunc(display);

    glutIdleFunc(display);

    glutMainLoop();

}


第八周期中考







沒有留言:

張貼留言