2017年5月22日 星期一

郭羽筆記week14

上節課的作業動起來:

使用透視效果來實現機器人的旋轉:
float eyeX=0, eyeY= 0, eyeZ= 2;
float centerX=0, centerY=0, centerZ=0;
float upX=0, upY=1, upZ=0;
float angle=0, dir=1;
bool flag = true;

 glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(60,1,0.001,10000);
    glMatrixMode(GL_MODELVIEW);

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     angle+= 0.01;
    if(eyeY > 1) flag = true;
    if(eyeY < -1) flag = false;
    if(!flag)   eyeY += 0.01;
    else    eyeY -= 0.01;
    eyeX = sin(angle);
    eyeZ = cos(angle);
    glPushMatrix();

    gluLookAt(eyeX, eyeY, eyeZ,
              centerX, centerY, centerZ,
              upX, upY, upZ);

加入定時器:
void timer(int t)
{
    glutTimerFunc(100, timer, t+1);
     angle+= 0.1;
    if(eyeY > 1) flag = true;
    if(eyeY < -1) flag = false;
    if(!flag)   eyeY += 0.01;
    else    eyeY -= 0.01;
    eyeX = sin(angle);
    eyeZ = cos(angle);
    glutPostRedisplay();
}
這樣將隨時間變化的角度通過計時器進行了時間控制。
TRT:
glTranslatef(-0.14,0.19,-0.02);
            glRotatef(-angle *5, 0,0,1);
            glTranslatef(-0.01,-0.04,0);
            glmDraw(pmodel_arm_high_right, GLM_SMOOTH | GLM_MATERIAL);

            glutWireSphere(0.01,15,15);
            glPushMatrix();

                glTranslatef(-0.01,-0.05,0.05);
                glRotatef(-angle *5, 0,0,1);
                glTranslatef(-0.09,-0.15,0);
                glmDraw(pmodel_arm_low_right, GLM_SMOOTH | GLM_MATERIAL);
            glPopMatrix();

沒有留言:

張貼留言