1.timer計時器
void timer(int t)
{
glutTimerFunc(100,timer,t+1);
angle++;
glutPostRedisplay();
}
int main(int argc, char**argv)
{
glutDisplayFunc(display);
//glutIdleFunc(display);
glutTimerFunc(2000,timer,0);
}
2.使用滑鼠控制
void mouse(int button,int state,int x,int y)
{
oldX=x,oldY=y;
glutPostRedisplay();
}
void motion(int x,int y)
{
angle[now]+=(x-oldX);
oldX=x;
glutPostRedisplay();
}
3.利用鍵盤滑鼠一起控制
void keyboard(unsigned char key,int x,int y)
{
if(key=='0')now=0;
if(key=='1')now=1;
if(key=='2')now=2;
if(key=='3')now=3;
if(key=='s'){
printf("%c\n",key);
if(fout==NULL)
{
fout=fopen("file.txt","w+");
}
fprintf(fout,"%.2f %.2f %.2f %.2f\n",angle[0],angle[1],angle[2],angle[3]);
printf("%.2f %.2f %.2f %.2f\n",angle[0],angle[1],angle[2],angle[3]);
}
if(key=='r')
{
//printf("%c\n",key);
if(fin==NULL)
{
fin=fopen("file.txt","r");
fscanf(fin,"%f %f %f %f\n",&newAngle[0],&newAngle[1],&newAngle[2],&newAngle[3]);
}
if(alpha>=1.0)
{
for(int i=0;i<5;i++) oldAngle[i]=newAngle[i];
fscanf(fin,"%f %f %f %f\n",&newAngle[0],&newAngle[1],&newAngle[2],&newAngle[3]);
alpha=0.0;
}
for(int i=0;i<5;i++)
{
angle[i]=alpha*newAngle[i]+(1-alpha)*oldAngle[i];
}
alpha+=0.1;
/*if(key=='z')
{
PlaySound("C:\\Users\\Administrator.20150226-220640\\Desktop\\04160100_hw01\\data\\home.mp3",NULL,SND_ASYNC);
}*/
glutPostRedisplay();
}
}
void mouse(int button,int state,int x,int y)
{
oldX=x,oldY=y;
glutPostRedisplay();
}
void motion(int x,int y)
{
angle[now]+=(x-oldX);
oldX=x;
glutPostRedisplay();
}
沒有留言:
張貼留言