2017年10月5日 星期四

周承翰_計圖學習筆記_Week04

Week 04
主題 : 移動、旋轉、縮放

2017/10/05 

相關下載 : 

1. CodeBlocks MinGW 版本
2. freeglut-MinGW


課程主題 : 

 將3D圖形分別做 移動、旋轉、縮放










移動 (Translate) : glTranslated ( x , y , z )    /// x , y , z 為座標 (右手座標系統)

旋轉 (Rotate) : glRotated(* , x , y , z ) ;       /// *為角度 , x , y , z 代表旋轉軸

縮放 (Scale) : glScaled(x, y, z);                    ///* x , y , z 為圖形縮放被綠 

顏色 : glColor3d(x,y,z) ;   /// x為紅色 、y為綠色、  z為藍色  


備註 : glTranslatedf(x,y,z) 浮點數座標 、 glTranslated(x,y,z) double座標


課程內容 : 

一. 圖形更改

       實心圖形 ( Solid )
        glutSolidSphere  : 實心圓形
        glutSolidCone     : 實心錐形
        glutSolidTorus    :  實心甜甜圈

       空心圖形 ( Wire )
        glutWireSphere  :   空心圓形
        glutWireCone     :  空心錐形
        glutWireTorus    :   空心甜甜圈

       額外圖形
       glutSolidTeapot(1);   實心茶壺 
       glutWireTeapot(1);   空心茶壺

       step01 : 試著隱藏原程式碼的實心圓,並改為空心茶壺

       step02 : 試著更改原程式碼的顏色為青藍色
   
     
        

二. 旋轉(Rotate)

       glRotated(60,1,1,0) ;  // 圖形旋轉的角度
       glRotated(a,1,0,0) ;    // 整個圖形隨時間的旋轉角度
       
       
        


三. 移動(Translate)

           glTranslated( 2.4 , 1.2 ,-6); 更改為--> glTranslated( 3.5 , 2 , -6);
      
           增加 x , y 值便是向 右上方 移動
            

四. 縮放(Scale)

           新增 glScaled( x , y , z ) --> 更改為 glScaled(1.5, 0.5, 0.2)

           
          
           增加(減少) x , y , z 值就是圖形放大(縮小)的倍率
           

      


沒有留言:

張貼留言