Вращающийся квадрат — один из самых простых примеров анимации. При описании пакета OpenGL к подобной иллюстрации прибегают столь же часто, как и к программе "Общего привета" ("Hello, world!"). Больше других нам понравилась реализация вращения квадрата,  написанная  на  языке  C  и  приведенная  в  книге Э. Эйнджела "Интерактивная компьютерная графика" [36]. В этом примере, с од- ной стороны, демонстрируется управление вращением с помощью кнопок мыши (левая кнопка запускает вращение, правая — останавливает). С другой стороны, здесь появилась возможность разумного использования времени ожидания сооб- щения, адресованного какому-нибудь из обработчиков событий. Вместо пустого повторения главного цикла приложение может получить управление и использо- вать время "простоя" для выполнения каких-то вычислений или подготовки ин- формации для отображения следующей сцены. Адрес такой процедуры, преду- смотренной в приложении, регистрируется в GLUT с помощью подпрограммы glutIdleFunc. Объем нашей модификации примерно на 10% меньше по сравнению с программой Эйнджела.

Читать »