Я хочу видеть движение сферы на экране (OpenGL) - PullRequest
0 голосов
/ 18 ноября 2018

Я хочу видеть движение Сферы на экране. но, если вы запустите код, вы не сможете обновить экран. Как изменить код, чтобы показать изменение местоположения фразы, которую я создал?

void display() {
  glLoadIdentity();
  gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);

  GLfloat diffuse1[] = { 1.0, 1.0, 1.0, 1.0 };
  GLfloat ambient1[] = { 1.0, 1.0, 1.0, 1.0 };
  GLfloat specular1[] = { 1.0, 1.0, 1.0, 1.0 };
  GLfloat position1[] = { 0, 0, 0, 1.0 };
  GLfloat diffuse2[] = { 0.5, 0.5, 0.5, 1 };
  GLfloat ambient2[] = { 0.1, 0.1, 0.1, 1 };
  GLfloat specular2[] = { 0.5, 0.5, 0.5, 1 };
  GLfloat emission2[] = { 0, 0, 0, 1 };
  GLfloat shine = 300;

  glLightfv(GL_LIGHT0, GL_POSITION, position);
  glLightfv(GL_LIGHT0, GL_AMBIENT, ambient1);
  glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse1);
  glLightfv(GL_LIGHT0, GL_SPECULAR, specular1);
  glPushMatrix();
  glMaterialfv(GL_FRONT, GL_AMBIENT, ambient2);
  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse2);
  glMaterialfv(GL_FRONT, GL_SPECULAR, specular2);
  glMaterialfv(GL_FRONT, GL_EMISSION, emission2);
  glMaterialf(GL_FRONT, GL_SHININESS, shine);
  glRotatef(mer_revolution, 0, 0, 1);
  glTranslatef(0, 0.8, 0);
  glRotatef(mer_rotate, 0, 0, 1);
  glutSolidSphere(1, 300, 300);
  glPopMatrix();
  glFlush();
  }

void main(int argc, char** argv) {
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
  glutInitWindowSize(800,600);
  glutCreateWindow("");
  glClearColor(0, 0, 0, 0);
  glColor3f(1.0, 1.0, 1.0);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glEnable(GL_LIGHTING);
  glEnable(GL_LIGHT0);
  glEnable(GL_DEPTH_TEST);
  glDepthFunc(GL_LESS);
  glMatrixMode(GL_MODELVIEW);
  glutDisplayFunc(display);
  glutReshapeFunc(reshape);
  glutIdleFunc(move);
  glutMainLoop();
}

1 Ответ

0 голосов
/ 18 ноября 2018

Move 'gL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT 'вверху экрана. При выполнении функции экран должен быть инициализирован. Только тогда экран продолжит изменяться.

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