2018年5月21日 星期一

Week13 珮妤的筆記

主題:寫檔讀檔.控制關節.動作內插
TODO: File-New-Empty File
另存新檔(File-Save as) file.cpp

///先開一個沒有專案的空白檔案
#include <stdio.h>
int main()
{
    FILE * fout = fopen("output.text", "w+");///開啟檔案
    ///FILE * 檔案指標 fout
    ///     檔案file
    ///      open開啟
    ///     "要開啟的檔名", "w+"表示要寫/+檔案


    printf("Hello world\n");
    fprintf(fout, "Hello world\n");

}


TODO: 
float angle=0, angle2=10, angle3=90;
fprintf("%3f  %3f %3f",angle, angle2,angle3);

 


TODO: File-New -Project, GLUT 專案
註:用    glutMouseFunc(mouse);
             glutMotionFunc(motion);
#include <stdio.h>
FILE * fout=NULL;///檔案一開始是空的
float angle=0;
int oldX=0;
void mouse(int button, int state, int x, int y)
{

    oldX=x;
}
void motion(int x, int y)///用mouse motion來改關節angle
{
    angle += x-oldX; ///角度稍微增減
    oldX=x;///把舊的更新成新的
    if(fout==NULL){ ///一開始是空指標,所以會進來if()
        fout = fopen("output.text", "w+");
    }
    fprintf(fout, "%.3f\n", angle);///把角度印到檔案裡
    printf("%.3f\n", angle);///把角度印出來
    glutPostRedisplay();///重畫畫面

}



FILE * fin=NULL; ///in檔案一開始是空的NULL
float angle=0;
int oldX=0;
void keyboard(unsigned char key, int x, int y)///要記得main()註冊
{
    if(fin==NULL){ ///一開始是空指標所以會進來if()
        fin=fopen("output.text", "r");///r表示讀入read   
    }
    fscanf(fin, "%f", &angle);///從檔案fin讀進來
    glutPostRedisplay();///讀入資料馬上重畫
}

沒有留言:

張貼留言