2014年5月3日 星期六

機器人伊伊喔喔




製作一個機器人
1,先做出一個茶壺並讓她旋轉
(旋轉時前面要加上)
float angleX =0, angleA=0, angleB=0, angleC=0, angleD=0 ;
if(key=='4') angleX+=5;
 if(key=='6') angleX-=5;
 if(key=='8') angleA+=5;
 if(key=='2') angleA-=5;
2,做出三個圓,分別為頭ˋ手及腳
glPushMatrix();
     glTranslatef( 0, 0.35, 0); //寫圓的位置
     glutSolidSphere( 0.24, 30, 30); //圓的大小
glPopMatrix();
分別以此類推
3,做出機器人的左手右手臂
先畫出兩個長方形
glPushMatrix();//右手臂
     glRotatef(angleA, 0, 0, 1); //旋轉的方向
     glTranslatef(0.2, 0, 0); //位置
     glScalef(0.25, 0.15, 0.15); //長方形的長寬高
     glutSolidCube(1);
glPopMatrix();
以此類推做出手臂
4.用相同類似的方法做出手軸及小手臂,(製作小手臂時,要把旋轉中心點改到手軸那裡,就是把小手臂的程式碼包在手軸裡面)
5.再做一個圓,做出機器人的肚子(但老師是用正方形)
6.做出腳
glPushMatrix(); //左大腿
    glTranslatef(-0.2 , -0.13,0); //位置
    glRotatef(angleB, 1, 0, 0); //旋轉
    glPushMatrix();
            glTranslatef(0.1 ,-0.55 ,0); //腿的位置
            glScalef(0.15 , 0.95, 0.15); //(長方形)的長寬高
            glutSolidCube(1);
        glPopMatrix();
        glPushMatrix();
                glTranslatef(0.1, -0.95, -0.05); //腳丫的位置
                 glScalef( 0.15 , 0.15, 0.25); //腳丫的大小
                 glutSolidCube(1);
        glPopMatrix();
 glPopMatrix();
再腳的地方,我做了小小的變化,就適用for將腳走的角度限制,不然劈腿360度感覺很奇怪
if(key=='5')
 {
        if(i==1)
        {
                angleB += 5;
                if(angleB >= 15)
                        i = 0;
        }
        else if (i==0)
        {
                angleB -= 5;
                if(angleB <= -15 )
                        i = 1;
        }
}
當腳的角度大於15度時就會往回走,所以走路時按5即可

如此一來機器人及大公告成!!!

沒有留言:

張貼留言