2015年6月4日 星期四

02160571_week15_黃冠瑛

(1)複習上週TRT
(2)期中作品
(3)建出全身關節
(4)鍵盤滑鼠操控
(5)存檔play撥放
TODO:
freeglut解壓縮
GLUT專案(last week)
TODO:main.cpp(last week)
TRT.exe+freeglut.dll
將上週做到一半的機器人程式碼重新複製貼上到新的robot專案(GLUT)內並執行



void keyboard(unsigned char key, int x,int y)
{
    if(key=='1')angle1++;
    if(key=='2')angle2++;
    if(key=='3')angle3++;
    if(key=='4')angle4++;
}
float angle1=0,angle2=0,angle3=0,angle4=0;
 glRotatef(angle1, 0,0,1);///把下面整團, 都對中間做旋轉 ver 3
 glRotatef(angle2, 0,0,1);///把下面整團, 都對中間做旋轉 ver 3
 glRotatef(angle3, 0,0,1);///把下面整團, 都對中間做旋轉 ver 3
 glRotatef(angle4, 0,0,1);///把下面整團, 都對中間做旋轉 ver 3

用陣列寫出轉動關節
float angle[10];///angle1=0,angle2=0,angle3=0,angle4=0;
int angleID=1;
glRotatef(angle[1], 0,0,1);///把下面整團, 都對中間做旋轉 ver 3
glRotatef(angle[2], 0,0,1);///把下面整團, 都對中間做旋轉 ver 3
glRotatef(angle[3], 0,0,1);///把下面整團, 都對中間做旋轉 ver 3
glRotatef(angle[4], 0,0,1);///把下面整團, 都對中間做旋轉 ver 3
void keyboard(unsigned char key, int x,int y)
{
    if(key=='1')angleID=1;
    if(key=='2')angleID=2;
`
    if(key=='3')angleID=3;
    if(key=='4')angleID=4;
}
void motion(int x, int y)
{   angle[angleID] -= y - oldY;
    oldY=y; oldX=x;
}
新增
#include <stdio.h>///write file
FILE *fout=NULL;///write file

void motion(int x, int y)
{   angle[angleID] -= y - oldY;
    oldY=y; oldX=x;

    if(fout==NULL)fout=fopen("a.txt","w+");
    printf("%f",angle[4]);
    fprintf(fout,"%f\n",angle[4]);
}
FILE *fin=NULL;///read file
void keyboard(unsigned char key, int x,int y)
{
    if(key=='1')angleID=1;
    if(key=='2')angleID=2;
    if(key=='3')angleID=3;
    if(key=='4')angleID=4;
    if(key=='p')playing=1;
}
void motion(int x, int y)
{
    angle[angleID] -= y - oldY;
    oldY=y;
    oldX=x;

    if(fout==NULL)fout=fopen("a.txt","w+");
    for(int i=0; i<10; i++){
        printf("%.1f",angle[i]);
        fprintf(fout,"%.1f\n",angle[i]);
    }
    printf("\n");    fprintf(fout,"\n");
}
void timer(int t)
{
    glutTimerFunc(20, timer, t+1);
    //angle++;
    if(playing==1)
    {
        if(fin==NULL)fin=fopen("a.txt","r");///read file
        for(int i=0; i<10; i++){
            fscanf(fin,"%f",&angle[i]);
        }
    }
    glutPostRedisplay();
}

glPushMatrix();
    glRotatef(angle[0], 0,1,0);///把下面整團, 都對中間做旋轉 ver 3
    drawArm();///這是個Arm ver 1  Right Upper Arm
.
.
.
glPopMatrix();



沒有留言:

張貼留言