2022年5月17日 星期二

尖🦉-圖學筆記 Week13

◇利用矩形了解TRT運作:

   1.加上glRectf(x1,y1,x2,y2);//矩形程式碼

        glutInitWindowSize(x,y);//可自行設定畫面大小

    2.再加一個Rect模擬手臂,並加上TRT程式。

       畫glRectf(0.3,0.5,0.7,0.3); (在下面圖的原位)

       TRT三步驟:(1)旋轉中心從(0.3 , 0.4)移到(0 , 0)。→glTranslatef(-0.3,-0.4,0);

                           (2)對z軸旋轉 glRotatef(angle,0,0,1);

                           (3)利用Translatef(0.3,0.4,0)再把手臂拉回原位。

    3.利用鍵盤mouse motion 來改變angle

        增加mouse函式和motion讓他轉動的函式:

        並在main函式呼叫函式:

       最後完成:

 ◇再增加TRT:

   1.再加一個下手臂(和上手臂的步驟一樣)

     2.左邊手臂也出來(將右手臂座標正負相反,因為鏡射)

        最後程式碼:

 ◇藉由keyboard讓我們可以選擇關節轉動:

   1.將angle改成陣列float angle[20];

        之後再原本是angle的地方改成陣列的形式!並設定每個關節是幾號。

        ex: glRotatef(angle[1],0,0,1);

    2.設定 int angleID=0; 讓我們能挑第幾號關節。

        (1)新增一個keyboard函式,讓我們按對應鍵盤時,能調整angleID的值。

        (2)motion函式 angle[0]+=(x-oldX);要改成angle[angleID]+=(x-oldX);

      (3)main函式要加 glutKeyboardFunc(keyboard);

    3.最後完成


沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...