2017年10月6日 星期五

Claire's Note #4

WEEK04

Topic:

  1. 主題:移動、旋轉、縮放
  2. 實作:Translate, Rotate, Scale
  3. 觀念:矩陣Matrix, Push, Pop
  4. 作業:加入移動、旋轉等

A. 移動、旋轉、縮放

STEP 1: Open GLUT Project

STEP 2: 範例專案



STEP 3: 改display()函式,將每個圖都加上茶壺

最後顏色改為紫色,因此下方顏色也變成紫色
*程式碼:
  • 註解部分程式碼,觀看結果
  • 3D圖形顯示為透視,左右兩邊非正視圖
1. glRotated(degree, x, y, z); //旋轉

   (a)


    (b) 依x軸(1, 0, 0)旋轉60°


    (c)依z軸(1, 0, 0)不斷旋轉
     若旋轉軸為(-1, 0, 0),則旋轉方向相反


  2. glScalef(x, y, z); //縮放(參數為float)
    (a) 放大


    (b) 縮小



    (c) 不等比縮放


B. 實作:滑鼠拖曳移動(2D圖形)

STEP 1: Open GLUT Project & 開啟Week02課堂作業(列印茶壺)



STEP 2: 加入mouse()、motion()
void mouse(int button, int state, int x, int y)
判斷當下狀態(是否按下滑鼠)
若按下,則記錄當下游標位置

void motion (int x, int y)
判斷滑鼠移動的方向和距離
再在新座標位置畫出圖形

STEP 3: 在main函式中加入呼叫mouse、motion函式

glutMouseFunc(mouse);
glutMotionFunc(motion);

STEP 3: Result


*程式碼






沒有留言:

張貼留言