2020年4月21日 星期二

week8三文 學柱體製造






#include <GL/glut.h>

void upper_arm()
{
    glPushMatrix();
    glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
float angle=0;///TODO

void display(){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

        glPushMatrix();
        glRotatef(angle,0,0,1);///對z軸懸//TODO
        glTranslated(0.25,0,0)
        upper_arm();

    glPopMatrix();
    angle++;

    glutSwapBuffers();
}

    int main(int argc, char**argv)
    {
        glutInit(&argc,argv);
        glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
        glutCreateWindow("Week09");
        glutIdleFunc(display);///TODO
        glutDisplayFunc(display);
        glutMainLoop();

    }







void display 裡


    glTranslated(0.25,0,0)






void display 裡

  glTranslated(0.5,0.5,0);///TODO3 把物體放到想要的座標





************

概念矩陣
{glTranslatef 1 }{glRotatef}{glTranslatef 2}*{arm}
 離arm越近 越先處裡

************
手臂概念






glPushMatrix();
        glTranslated(0.2,0,0);///TODO3 把物體放到想要的座標
        glRotatef(angle,0,0,1);
        glTranslated(0.25,0,0);
        glColor3f(10,0,0);
         upper_arm();

        glPushMatrix();
        glTranslated(0.25,0.,0);///TODO3 把物體放到想要的座標
        glRotatef(angle,0,0,1);
        glTranslated(0.25,0,0);
        glColor3f(0,0,10);
        upper_arm();

        glPopMatrix();
    glPopMatrix();

**************
要揮手加入
angle+=xd;
if(angle>60)  xd=-1;

if(angle<0) xd=1;


************************
 柱體製造
glPushMatrix();
        glTranslated(-2.4,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidSphere(1,slices,stacks);
    glPopMatrix();





    glPushMatrix();
        glTranslated(0,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidCone(1,1,slices,stacks);
    glPopMatrix();






    glPushMatrix();
        glTranslated(2.4,1.2,-6);
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glutSolidTorus(0.2,0.8,slices,stacks);
    glPopMatrix();

沒有留言:

張貼留言