2015年5月27日 星期三

||02160562||洪伊盈||Week 14|| 期末 & TRT關節旋轉

終於要教期末作業了
之前就有聽學長姐說有一個機器人要做
看他們做好久的樣子~
希望我也能做得出來一個好作品

WEEK14
(1) 期末作品
(2) 會跳舞的機器人
(3)T-R-T 關節旋轉
(4)作業問題示範解說
(5)臨時小考 -> T-R-T觀念

#include <GL/glut.h>

void display()
{
    GLfloat pos[]={0,0,-1,0}; //打光
    glLightfv(GL_LIGHT0, GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSolidTeapot(0.3);

    glFlush();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);

    glutCreateWindow("02160562");

    glutDisplayFunc(display);

    glutMainLoop();
}


#include <GL/glut.h>

float angle=0;

void display()
{
    GLfloat pos[]={0,0,-1,0}; ///打光
    glLightfv(GL_LIGHT0, GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
      glRotatef(angle,0,0,1); ///把樓下茶壺,在中間做旋轉
      glTranslatef(0.3,0,0); ///把茶壺往右移動,茶壺柄在中間
      glutSolidTeapot(0.3);
    glPopMatrix();

    glFlush();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);

    glutCreateWindow("02160562");

    glutDisplayFunc(display);

    glutMainLoop();
}


#include <GL/glut.h>

float angle=0;

void display()
{
    GLfloat pos[]={0,0,-1,0}; ///打光
    glLightfv(GL_LIGHT0, GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
      glTranslatef(0.6,0.2,0);
      glRotatef(angle,0,0,1); ///把樓下茶壺,在中間做旋轉
      glTranslatef(0.3,0,0); ///把茶壺往右移動,茶壺柄在中間
      glutSolidTeapot(0.3);
    glPopMatrix();

    glutSolidTeapot(0.3); ///body

    glFlush();
}

void timer(int t)
{
    glutTimerFunc(20,timer,t+1);
    angle++;
    glutPostRedisplay();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);

    glutCreateWindow("02160562");

    glutDisplayFunc(display);

    glutTimerFunc(20,timer,0);

    glutMainLoop();
}

#include <GL/glut.h>

float angle=0;

void drawBody()
{
    glPushMatrix();
      glScalef(1,0.5,0.5);
      glutSolidCube(1);
    glPopMatrix();
}

void drawArm()
{
    glPushMatrix();
      glScalef(0.6,0.3,0.3);
      glutSolidCube(1);
    glPopMatrix();
}

void display()
{
    GLfloat pos[]={0,0,-1,0}; ///打光
    glLightfv(GL_LIGHT0, GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
      glTranslatef(0.5,0,0);
      glRotatef(angle,0,0,1); ///把樓下茶壺,在中間做旋轉
      glTranslatef(0.3,0,0); ///把茶壺往右移動,茶壺柄在中間
      drawArm();
    glPopMatrix();

    drawBody(); ///body

    glFlush();
}

void timer(int t)
{
    glutTimerFunc(20,timer,t+1);
    angle++;
    glutPostRedisplay();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);

    glutCreateWindow("02160562");

    glutDisplayFunc(display);

    glutTimerFunc(20,timer,0);

    glutMainLoop();
}

#include <GL/glut.h>

float angle=0, oldX=0, oldY=0;

void drawBody()
{
    glPushMatrix();
      glScalef(1,0.5,0.5);
      glutSolidCube(1);
    glPopMatrix();
}
void drawArm()
{
    glPushMatrix();
      glScalef(0.6,0.3,0.3);
      glutSolidCube(1);
    glPopMatrix();
}
void display()
{
    {///Lighting
        GLfloat pos[]={0,0,-1,0}; ///打光
    glLightfv(GL_LIGHT0, GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    }
    glPushMatrix();
      glTranslatef(0.5,0,0);
      glRotatef(angle,0,0,1); ///把樓下茶壺,在中間做旋轉
      glTranslatef(0.3,0,0); ///把茶壺往右移動,茶壺柄在中間
      drawArm();
    glPopMatrix();

    drawBody(); ///body

    glFlush();
}

void motion(int x,int y)
{
    angle-=y-oldY;
    oldY=y;
    oldX=x;
}

void mouse(int button, int state, int x, int y)
{
    if(state==GLUT_DOWN)
    {
        oldX=x;
        oldY=y;
    }
}

void timer(int t)
{
    glutTimerFunc(20,timer,t+1);
    //angle++;
    glutPostRedisplay();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutCreateWindow("02160562");
    glutDisplayFunc(display);

    glutTimerFunc(20,timer,0);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);

    glutMainLoop();
}

#include <GL/glut.h>

float angle=0, oldX=0, oldY=0;

void drawBody()
{
    glPushMatrix();
      glScalef(1,0.5,0.5);
      glutSolidCube(1);
    glPopMatrix();
}
void drawArm()
{
    glPushMatrix();
      glScalef(0.6,0.3,0.3);
      glutSolidCube(1);

    glPopMatrix();
}
void display()
{
    {///Lighting
        GLfloat pos[]={0,0,-1,0}; ///打光
    glLightfv(GL_LIGHT0, GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    }
    glPushMatrix();
      glTranslatef(0.5,0,0);
      glRotatef(angle,0,0,1); ///把樓下茶壺,在中間做旋轉
      glTranslatef(0.3,0,0); ///把茶壺往右移動,茶壺柄在中間
      drawArm();

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

    drawBody(); ///body

    glFlush();
}

void motion(int x,int y)
{
    angle-=y-oldY;
    oldY=y;
    oldX=x;
}

void mouse(int button, int state, int x, int y)
{
    if(state==GLUT_DOWN)
    {
        oldX=x;
        oldY=y;
    }
}

void timer(int t)
{
    glutTimerFunc(20,timer,t+1);
    //angle++;
    glutPostRedisplay();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutCreateWindow("02160562");
    glutDisplayFunc(display);

    glutTimerFunc(20,timer,0);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);

    glutMainLoop();
}


#include <GL/glut.h>

float angle=0, oldX=0, oldY=0;

void drawBody()
{
    glPushMatrix();
      glScalef(1,0.5,0.5);
      glutSolidCube(1);
    glPopMatrix();
}
void drawArm()
{
    glPushMatrix();
      glScalef(0.6,0.3,0.3);
      glutSolidCube(1);

    glPopMatrix();
}
void display()
{
    {///Lighting
        GLfloat pos[]={0,0,-1,0}; ///打光
    glLightfv(GL_LIGHT0, GL_POSITION,pos);
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);

    glEnable(GL_DEPTH_TEST);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    }
    glPushMatrix();
      glTranslatef(0.5,0,0);
      glRotatef(angle,0,0,1);
      glTranslatef(0.25,0,0);
      drawArm();

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

    glPushMatrix();
      glTranslatef(-0.5,0,0);
      glRotatef(-angle,0,0,1);
      glTranslatef(-0.25,0,0);
      drawArm();

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

    drawBody(); ///body

    glFlush();
}

void motion(int x,int y)
{
    angle-=y-oldY;
    oldY=y;
    oldX=x;
}

void mouse(int button, int state, int x, int y)
{
    if(state==GLUT_DOWN)
    {
        oldX=x;
        oldY=y;
    }
}

void timer(int t)
{
    glutTimerFunc(20,timer,t+1);
    //angle++;
    glutPostRedisplay();
}

int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutCreateWindow("02160562");
    glutDisplayFunc(display);

    glutTimerFunc(20,timer,0);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);

    glutMainLoop();
}

沒有留言:

張貼留言