2015年5月27日 星期三

20150527_02160065_劉劭玟week14課堂作業

今天一上課老師先讓我們跑範例
並且介紹RT跟TR的差別


RT對中心旋轉
TR對鈕扣旋轉


再來就是該進入正題的時候了
開始要自己製作了
一如往常地先從茶壺開始
很快地加入打光

再來是換成機器人
這個是會自己轉的
glPushMatrix();
    glTranslatef(0.5,0,0);
    glRotatef(angle,0,0,1);
    glTranslatef(0.25,0,0);
    drawArm();
 glPopMatrix();

再來是用滑鼠轉的
雖然截圖看起來差不多但是真的有不一樣

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

這次的又加了一段手臂
看起來有點厲害
動作都有健身的感覺
但是只有單隻手臂
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();

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

沒有留言:

張貼留言