2021年3月17日 星期三

NEKO no Computer Graphics_week04


     又見面了

    首先來展示一下前幾周的成果


    我知道這隻貓怪怪的

    想辦法畫的很像了

    對於座標系統真的沒有想法

    

    還有架網站的伏筆要下周回收了...


    回到正題

    今天一開始要學滑鼠的控制

    首先建立函數 glutMouseFunc( mouse(名稱可以自訂) );

    然後補函數 void mouse(int button,int state,int x,int y){}

    四個值印出分別如下:


    button代表滑鼠按鍵類型,state代表滑鼠按下(1)/放開(0)的狀態,x/y則是按下的座標

    然後是滑鼠的移動數據,我們用motion函式來處理

    glutMotionFunc(motion) 設定 motion函式

    motion(int x,int y) x/y紀錄座標

    使用陣列+迴圈用來描點再靠glVertex畫出來:

    


    畫完圖之後,嘗試了解3D的移動旋轉和縮放

    老師給了一個程式,以方便模擬:



    glTranslatef(x,y,z); x/y/z=x/y/z軸位移量

    glRotatef(a,x,y,z); a=旋轉角度,x/y/z=旋轉軸參數(用右手定則來理解,指向三個值的向量)

    glScalef(x,y,z) x/y/z=以x/y/z軸做縮放


    今天大概也很充實吧

    下周見嘍


沒有留言:

張貼留言

距地表面160 Week11

 #include "glm.h" GLMmodel* pmodel = NULL; void drawmodel(void) {     if (!pmodel) { pmodel = glmReadOBJ("data/porsche.obj...