2021年6月9日 星期三

築損 Week16

 第1部份

新增專案 將15周複製到16周

將timer 中的程式搬家 到新的motion函式中

程式碼

void motion(int x, int y)///當motion動

{

    angle[angleID]+= x - oldX;///用x-oldX

    oldX=x;///再更新位置

    glutPostRedisplay();

}

新增mousec函式

程式碼

void mouse(int button, int state, int x, int y)

{

    oldX=x;///mouse按下時,記下位置

}

新增變數oldX=0;

再到mainc函式裡glutMainloop() 之前加上\

    glutMouseFunc(mouse);

    glutMotionFunc(motion);

就能用滑鼠進行操控

執行結果





-----------------------------------------------------------------------------------------------------------------------------

第2部份

加上上次的輸出檔案

要在上方加上

FILE * fout=NULL;

angle.txt檔案在freeglut/bin裡

移動茶壺時會不斷將座標顯示在小黑視窗

也會存在angle檔裡

進行動畫播放

會將anlge.txt檔案中的座標進行茶壺的動作

執行結果










-----------------------------------------------------------------------------------------------------------------------------

第3部份

將存檔跟讀檔用鍵盤控制

先移動茶壺到指定位置

按下s存檔

再進行下一個動作

再存一次

到angle.txt裡面的動作複製

回到codeblocks執行

按下r就可播放出剛剛執行的動作

執行結果









-----------------------------------------------------------------------------------------------------------------------------

第0部份


執行結果


-----------------------------------------------------------------------------------------------------------------------------

沒有留言:

張貼留言

距地表面160 Week11

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