2023年3月15日 星期三

JIA的電腦圖學日誌 Week05

  1

今天的第一個程式, 和上週一樣到老師的網站 https://jsyeh.org/3dcg10/ 下載檔案

data     win32    


步驟都一樣

下載完畢後解壓縮

下載 > windows > data ( data 要解壓縮到 windows 裡哦, 裡面有很多的模型 )

下載 > windows >Transformation.exe

點開 Transformation.exe


上週有一個口訣:左耳碰左肩

再來複習一下如何使用 Transformation.exe

閱讀程式碼的方式是由下往上

先有一個藍色車子,讓他長胖1.5,

以y軸為旋轉軸旋轉 ( 此時沒有轉動 ),

往右邊移動


下圖呈現移動後的樣子

看得出來他往右移動且自轉


接著移動和旋轉做交換

像是底下有個轉盤一樣,車子往右移動後沿著圓盤的軌跡旋轉


來寫第一個程式啦

把上週的程式碼抓出來

這次我們要做對 Z軸 轉動

程式碼如下

( 老師的程式碼23行應該是angle++ 但電腦太有空轉太快,做了小更動 )

執行小黑, 看到兩個不同旋轉方式的茶壺 ( 移動軌跡如下 )


老師傳了一個檔案 opengl_TRT

試著玩看看老師的檔案,來了解程式碼含意

首先嘗試畫出身體和手臂,嘗試移動他使手臂正常轉動

程式碼如下 (數值依照圖、位置做更動)


然後老師介紹一下 下週考試的題目

老師給一張圖片讓我們寫出對應程式碼讓手能正常轉動

框架:push 配 pop框起來 下面放drawHand() 上面放 TRT

glPushMatrix();
    glTranslatef(-0.5, -0.9, 0);  (3)最後,把轉動的手肘掛到正確的位子
    glRotatef(-45,0,0,1);  (2)轉動,要小心正負號和旋轉軸!
    glTranslatef(-0.8,0.9,0);  (1)把手肘中心放到世界中心,加負號!正變負 負變正
    drawHand();
glPopMatrix();


2


今天的第二個程式,想畫出大的身體和手臂

程式碼如下

執行小黑, 看到手臂沿著肩膀轉動





沒有留言:

張貼留言