早上老師教了googlemeet的用法聽起來真的有夠方便,之後就是把上週的程式碼先貼上
然後就加新東西囉!
先偷偷用一下老師的圖
用新x減掉舊X獲得向量 再加上程式碼讓茶壺可以用滑鼠跟1230數字鍵進行操作
(這個上週就可以了)
第5行:int oldX=0;
10-20行:
void mouse(int button, int state, int x, int y)
{
oldX = x;
}
void motion (int x, int y)
{
angle[angleID] += x-oldX;
oldX = x;
glutPostRedisplay();///現在這個比較好, 以前會用 display()重畫
}
66-67行:
glutMouseFunc(mouse);
glutMotionFunc(motion);
接下來再加一點程式碼可以讓檔案記下你移動的位置及座標
第六行: FILE * fout = NULL;
22-26行:
if(fout==NULL) fout=fopen("angle.txt", "w+");
for(int i=0 ; i<20 ; i++) fprintf( fout, "%.1f",angle[i]);
fprintf( fout, "\n");///以上兩行寫到檔案
for(int i=0 ; i<20 ; i++) printf( "%.1f",angle[i]);
printf("\n");///以上兩行印到小黑視窗
第七行:
剛剛是不是記下了位置及座標接下來就是把座標結合作成一個移動動畫!!!
FILE * fin = NULL;///播放動畫的檔案指標
void timer( int t ){
glutTimerFunc( 30, timer, t+1 );///現在要用他撥動畫
if (fin==NULL) fin=fopen("angle.txt", "r");
for(int i=0 ; i<20 ; i++) fscanf( fin, "%f", & angle[i]);
glutPostRedisplay();///播放動畫,重製畫面
}


沒有留言:
張貼留言