2015年6月11日 星期四

02163042_王冠閔_week15

(1)移動、旋轉、縮放

(2)T-R-T及關節結構


(3)存檔、讀檔、播放

存檔

if(key=='s'){
             if(fout==NULL) fout=fopen("a.txt", "w+");
        for(int i=0;i<10;i++)
        {
            printf("%.1f ", angle[i]);
            fprintf(fout, "%.1f ", angle[i]);
        }
        printf("\n"); fprintf(fout, "\n");
    }
    glutPostRedisplay();
-----------------------------------------------------------------------------------------------------------------------

讀檔

void readNew()
{
    if(fin==NULL) fin=fopen("a.txt", "r");
        for(int i=0;i<10;i++){
            angleOld[i]=angleNew[i];
            fscanf(fin, "%f", &angleNew[i]);
            printf("%f ", angleNew[i]);
        }
    printf("\n");
}
-----------------------------------------------------------------------------------------------------------------------

播放

void timer(int t)
{
    glutTimerFunc(20, timer, t+1);
    float a=(t%50==0)/50.0;
    if(t%50==0) readNew();
    for(int i=0;i<10;i++)
    {
        angle[i]=(1-a)*angleOld[i]+(a)*angleNew[i];

    }
    glutPostRedisplay();
}

(4)內插動作Interpolate

內插公式

glutTimerFunc(20, timer, t+1);
    float a=(t%50==0)/50.0;
    if(t%50==0) readNew();
    for(int i=0;i<10;i++)
    {
        angle[i]=(1-a)*angleOld[i]+(a)*angleNew[i];

    }

(5)期末作品

沒有留言:

張貼留言