2017年7月2日 星期日

Week 14 一權的上課筆記

(1)內插公式
          -------alpha * new + (1-alpha) * old
                               新的                     舊的

---------------------------------------------------------------我是分隔線---------------------------------------------------------
***把內插公式帶入程式碼----------Alpha*NewAngle+(1-Alpha)*OldAngle
STEP 1.下載上次作業檔案
STEP 2.在程式碼中增加以下程式碼

鍵盤+滑鼠
STEP 3.
    float angle[9]={},dir=1;///端午節前,是用角度做事情
    float alpha=0.0;///今天上課教,alpha內插
    float new[9]={0,0,0,0,0,0,0,0,0};///今天上課教,新的角度
    float old[9]={40,40,-40,-40 ,0,0,0,0};///今天上課教,舊的角度

void interpolation()
{
         for(int i=0;i<9;i++){///今天上課教,for迴圈,alpha內插
             angle[i]=alpha * new[i]  + (1-alpha) * old[i-1];///今天上課教
         }
          alpha+=0.1;///今天上課教內插公式
}

STEP 4.增加計時器
void Timer(){
      glutTimerFunc(100,timer,t+1);
    angle++;
    glutPostOverlayRedisplay();
}
(2)存檔讀檔

FILE * fout = NULL;

 if(key=='s' || key =='S'){
        if(fout==NULL){
            fout=fopen("file.txt","w+");
         printf("現在我要產生一個file.txt的檔案在目錄裡面\n");
        }
        fprintf(fout,"%.3f %.3f %.3f %.3f %.3f\n",angle[0],angle[1],angle[2],angle[3],angle[4]);
        printf("現在我印了%.3f %.3f %.3f %.3f %.3f在目錄裡\n",angle[0],angle[1],angle[2],angle[3],angle[4]);
    }


沒有留言:

張貼留言