Трудности адаптации к OpenGL на Mac - PullRequest
0 голосов
/ 02 ноября 2010

Я знаю, что сам OpenGL является часто задаваемым вопросом, но я не смог найти решение этой конкретной проблемы, с которой я столкнулся. Я следовал инструкциям NeHe и столкнулся с некоторыми проблемами, которые, по моему мнению, не должны происходить:

  • При вызове glRotatef, где первым параметром является угол, вместо этого отображается скорость вращения.

Пример:

glRotatef(0, 0.0f, 1.0f, 0.0f); // despite the constant numbers, the object rotates infinitely

Я использую NSTimer для циклического прохождения метода рисования, который, я думаю, является частью проблемы.

  • Вместо объекта, вращающегося на 360 градусов вокруг, как и должно быть, угол объекта будет увеличиваться до 180, а затем уменьшаться до 0. Это то же самое с 2D и 3D объектами.

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

1 Ответ

1 голос
/ 02 ноября 2010

Код, который у вас есть glRotatef(0,0.0f,1.0f,0.0f);, вообще не меняет вращение, он просто запрашивает поворот на 0 градусов вокруг оси Y.Если вы хотите, чтобы объект плавно вращался с течением времени, я бы предложил следующее: сохраняйте счетчик, который увеличивается каждый раз, когда срабатывает таймер, затем, прежде чем рисовать какой-либо отображаемый объект, сбросьте матрицу преобразования с помощью glLoadIdentity() и затемglRotatef( counter , 0.0f, 1.0f , 0.0f )

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