##week13
##week13-1_glm_gundam_keyboard_angleID_mouse_motion_angle
0.開新的專案
1.安裝opencv
2.重開codeblocks,3個設定
再把上周的week12-3拿來用
從暫停的地方繼續轉動
##week13-2_FILE_fopen_fprintf_fscanf
1.複製week13-1
2.要加FILE指標
```cpp
FILE*fin=NULL;
FILE*fout=NULL;
```
3.在motion()裡,要加一段程式
```cpp
void motion (int x,int y){
angle[angleID]+=y-oldY;
oldX=x;
oldY=y;
glutPostRedisplay();
if(fout==NULL) fout=fopen("angle.txt","w+");
for(int i=0;i<20;i++){
printf("%.1f",angle[i]);
fprintf(fout,"%.1f",angle[i]);
}
printf("\n");
fprintf(fout,"\n");
}
```
執行程式的時候,用mouse motion一邊改變角度,一邊大量產生角度值,
小黑掉後,可在目錄裡看到angle.txt裡面就是剛剛印的一對數值
(printf("%.1f ",angle[i]);
fprintf(fout, "%.1f ",angle[i]);)
f 後面要有空格!!!
現在要讀
```cpp
void keyboard(unsigned char key ,int x,int y){
if(key=='r'){
if(fin==NULL) fopen("angle.txt","r");
for(int i=0;i<20;i++){
fscanf(fin,"%f",&angle[i]);
}
glutPostRedisplay();
}
if(key=='0') angleID=0;
if(key=='1') angleID=1;
if(key=='2') angleID=2;
if(key=='3') angleID=3;
}
```
沒有留言:
張貼留言