Как ввести достаточную задержку при использовании функции glutPostRedisplay () в OpenGL? - PullRequest
0 голосов
/ 07 апреля 2011
void display(void)

{

     char text1[10],text2[10];
     int i;
     glPointSize(2.0);
     glClear(GL_COLOR_BUFFER_BIT);
      circle_draw(x1center,y1center,radius1);
      y1center-=5;
      while(y1center>=100)
      {
          glutPostRedisplay();
          y1center-=5;
      }
      glFlush();

}

Я хочу переместить круг вдоль вертикальной оси. Но при использовании функции glutPostRedisplay () я могу видеть только начальную и конечную позиции круга. Переход слишком быстр, чтобы увидеть.

1 Ответ

2 голосов
/ 07 апреля 2011
void display(void)
{
     char text1[10],text2[10];
     int i;
     glPointSize(2.0);
     glClear(GL_COLOR_BUFFER_BIT);
     circle_draw(x1center,y1center,radius1);
     glFlush();
}

void update(int) { 
    if (y1center > 100) {
        y1center -= 5;
        glutPostRedisplay();
        glutTimerFunc(100, update, 0);
    }
}

int main() {
// ...

    glutTimerFunc(100, update, 0);

// ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...