2024年5月16日 星期四

Lwy_week13

 ##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;
}

```

長按r可以轉動手臂













沒有留言:

張貼留言