Week13
完成課堂前置
1.OpenCV下載
2.Setting-Complier 設定
3.CodeBlock開啟
13-1 mouse keyboard gundam (用鍵盤調整角度)
1.將上週12-3的CBP檔開啟改名
2.新增一個變數 angleID
程式如下:
int angleID = 0;
float angle[20]={ };
void display(){}
3.將下方陣列的倆的 Rotatef 的 angle++ 改成angle[0],angle[1]
4.新增 Keyboard 函式
程式如下:
void keyboard(unsigned char key,int x,int y){
if(key=='0') angleID = 0;
if(key=='1') angleID = 1;
if(key=='2') angleID = 2;
if(key=='3') angleID = 3;
}
5.新增oldX,Y 的變數
程式如下:
int oldX = 0,oldY = 0;
6.新增mouse變數
程式如下:
void mouse(int button,int state,int x,int y){
oldX = x;
oldY = y;
}
7.新增 motion函式
程式如下:
void motion(int x,int y){
angle[ angleID ] += y - oldY;
oldX = x;
oldY = y;
glutPostRedisplay();
}
8.最後設定
設定如下:
glutKeyboardFunc(keyboard);
glutMotionFunc(motion);
結果如圖(按滑鼠旋轉
13-2新增輸出資料並儲存的功能
1.複製上一個檔案餅改檔名
2.新增輸出角度資料的STDIO程式
如下:
#include <stdio.h>
FILE * fout = NULL;
FILE * fin = NULL;
void keyboard(unsigned char key,int x,int y){
if(key=='s'){
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");
}
2-2如果要儲存資料新增 的程式
沒有留言:
張貼留言