2023年3月15日 星期三

圖學 - Week05 - T.R.T特定軸轉

進入https://jsyeh.org/3dcg10/,下載data.zip和win32的zip檔,然後解壓縮win32的檔案,將data.zip的data資料夾拉出來,然後開啟Transformation.exe。


再次複習這個介面的各項數值。
PS.程式碼要由下往上看。


當Translate程式碼在Rotate上面時。
自轉↓

當Translate和Rotate程式碼交換位置時。
公轉↓


將上週week04-1_Rotate的程式碼複製出來(程式碼在Github裡)。
在裡面有2個茶壺分別是Rotate在上和Translate在上的程式碼。
跑出來的樣子會長這樣。



開啟Prcoessing的程式碼。
會跑出這個視窗。


然後先畫人的身體、頭和手臂。

先把所有的Rotate和2個Translate程式拉到下面。
把手臂的程式碼 ( myDrawObject(2) )拉到開始畫的程式碼下面。
把Rotate拉到手臂的程式碼上面,然後按空白鍵會開始旋轉。

會發現手臂會繞著中心點旋轉(公轉)。
再將一個Translate拉到手臂的程式碼上面,然後將手臂(圖形的手臂)拉到中心。
這樣手臂就會開始自轉。

然後把最後一個Translate拉到Rotate上面,然後拖曳手臂 (圖形)。
這樣手臂就會在拖曳的位置自轉。

 PS.要拖曳手臂時,須注意Translate的程式碼是否反紅,不然只會增加myDrawObject。




用CodeBlock做旋轉。
會發現紅色方塊它是以中心點做公轉。

更改程式碼之後,紅色方塊會以綠色方塊的右上中心點旋轉。



沒有留言:

張貼留言