2023年3月22日 星期三

JIA的電腦圖學日誌 Week06

   1

今天的第一個程式, 為了複習小考題目,將上週的程式碼複製進行更動,做更完整的機器人。

分解動作如下

第一步,執行小黑, 看到茶壺,平時是用小畫家標出軸線,今天想畫出一個中心球


第二步,執行小黑, 看到圓球出現在正中間


第三步,執行小黑, 看到茶壺把手僅靠著中心球


第四步,執行小黑, 看到茶壺繞著中心球旋轉



最終程式碼


把茶壺掛到我們想掛的地方


執行小黑, 看到茶壺被掛到右上旋轉


2


今天的第二個程式,更進階一些

程式碼如下
稍微解釋一下,上面那個靜止的茶壺當作身體固定在中間

再新增一個茶壺當作右手臂,調整它的位置讓他感覺接在茶壺的嘴巴上


執行小黑, 看到茶壺手臂沿著壺嘴旋轉


因為程式更動不大,只截圖變動部分

這次的主題是 階層性

再掛一個右手肘


執行小黑, 會看到三個茶壺,像手臂手肘這樣轉,顏色是配合上圖程式碼加的配色

👌3


今天的第三個程式, 我們想更明顯的表達

先上圖

執行小黑, 會看到我們用 drawHand 畫出來的小長方形在中心轉動


一樣只截圖重點


執行小黑, 會看到手肘沿著中心轉


但這不是我們要的,我們想把中心點向右移動


加上這行後我們的手臂就掛正確啦


執行小黑, 看到手肘正確旋轉了


把TRT解開看看


執行小黑, 我們想像一下中間有身體,我們的手就在右邊轉動


來看看今天的大魔王吧

剛剛是右手,現在加上左手吧


執行小黑, 我們一樣假裝中間有身體,那我們的手就是這麼轉動的


最後看一下完整的程式碼吧

👋最後


先複習一下期中考要考的涵式

glPushMatrix(); //備份矩陣
    glTranslatef(x,y,z); //移動
    glRotatef(angle,x,y,z);  //轉動
    glScalef(x,y,z);  //縮放
    glBegin(GL_POLYGON);  //開始畫,可以用其他的參數
        glColor3f(r,g,b);  //色彩
        glTexCoord2f(tx,ty); //貼圖座標
        glNormal3f(nx,ny,nz);  //打光的法向量
        glVertex2f(x,y); //頂點
        glEnd();  //結束畫
glPopMatrix();  還原矩陣


然後一樣!上傳 GitHub 就結束本週的課程啦
















沒有留言:

張貼留言