2023年3月22日 星期三

week06

使用上周的week05-2_TRT_robot

#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++; ///step02-1 把角度++


}


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


{


    glutInit(&argc, argv);


   glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);


    glutCreateWindow("week04"); 

     glutDisplayFunc(display);

    glutIdleFunc(display); ///step02-1 有空idle時,就重畫畫面

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


    glPopMatrix();



    glutSwapBuffers();

    angle++; ///step02-1 把角度++

}

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

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week04");



    glutDisplayFunc(display);

    glutIdleFunc(display); ///step02-1 有空idle時,就重畫畫面

    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);///2,就可以轉動了

    glTranslatef(0.46,-0.05,0);///1,把轉動的中心,放中心
    glutSolidTeapot(0.3);
    glPushMatrix();
    glTranslatef(0.49,0.13,0);
    glRotatef(angle,0,0,1);///2,就可以轉動了
    glTranslatef(0.46,-0.05,0);///1,把轉動的中心,放中心
    glutSolidTeapot(0.3);
    glPopMatrix();



    glPopMatrix();



    glutSwapBuffers();

    angle++; ///step02-1 把角度++

}

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

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week04");



    glutDisplayFunc(display);

    glutIdleFunc(display); ///step02-1 有空idle時,就重畫畫面

    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++; ///step02-1 把角度++


}


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


{


    glutInit(&argc, argv);


    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);


    glutCreateWindow("week04");




    glutDisplayFunc(display);


    glutIdleFunc(display); ///step02-1 有空idle時,就重畫畫面


    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);///3,掛上去
        glRotatef(angle,0,0,1);///2,轉動
        glTranslatef(0.25,0,0);///1,把中心放正中心

    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++; ///step02-1 把角度++

}

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

{

    glutInit(&argc, argv);

    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);

    glutCreateWindow("week04");

    glutDisplayFunc(display);

    glutIdleFunc(display); ///step02-1 有空idle時,就重畫畫面

    glutMainLoop();

}






沒有留言:

張貼留言