2016年5月17日 星期二

Week13 柯竹盈


1.解壓縮freeglut

2.開啟codeblock的貝殼專案








將freeglut.dll複製到codeblock的資料夾


現在試試看公轉跟自轉

機器人手臂
#include <GL/glut.h>
float rot1=0;///起始值設定
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///清理背景
    glPushMatrix();
        glutWireCube(0.2);///body

    glPushMatrix();
        glTranslatef(0, 0.15, 0);
        glutWireCube(0.1);///head
    glPopMatrix();

    glPushMatrix();///上臂,下臂,手掌都要分開做調整
        glTranslatef(0.10, 0.05, 0);
        glRotatef(rot1, 0,0,1);
        glTranslatef(0.05, 0, 0);
        glutWireCube(0.1);///rigt upper arm
       
        glTranslatef(0.05, 0, 0);
        glRotatef(rot1, 0,0,1);
        glTranslatef(0.05, 0, 0);
        glutWireCube(0.1);///rigt lower arm
       
        glTranslatef(0.05, 0, 0);///4.移到需要的座標位子 
        glRotatef(rot1, 0,0,1);///3.旋轉
        glTranslatef(0.05, 0, 0);///2.改變他的旋轉中心點
        glutWireCube(0.1);///1.先畫手掌
       
    glPopMatrix();

  glPushMatrix();
        glTranslatef(-0.10, 0.05, 0);
        glRotatef(-rot1, 0,0,1);
        glTranslatef(-0.05, 0, 0);
        glutWireCube(0.1);///left upper arm
        glTranslatef(-0.05, 0, 0);
        glRotatef(-rot1, 0,0,1);
        glTranslatef(-0.05, 0, 0);
        glutWireCube(0.1);///left lower arm
        glTranslatef(-0.05, 0, 0);
        glRotatef(-rot1, 0,0,1);
        glTranslatef(-0.05, 0, 0);
        glutWireCube(0.1);///hand

     
    glutSwapBuffers();
}
void motion(int x, int y )
{
    rot1=x;///旋轉
    glutPostRedisplay();///可以影分身
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Robot");
    glutDisplayFunc(display);
    glutMotionFunc(motion);

    glutMainLoop();
}


沒有留言:

張貼留言