Формування тіл обертання – реалізація алгоритму на OpenGl

Необхідні знання:

Розробка програми починається із створення оболонки. Створіть вікно програми та розмістіть на ній елементopenglsimplecontrol, як показано на малюнку 1, після чого встановіть його розміри500х500.

Перейменуйте цей об'єкт, давши йому ім'яAnT.

Крім цього, встановіть елементtrackBarу вікно форми. Перейшовши до його властивостей, встановітьrientationрівнимVertical. Максимальний діапазон встановіть100.

Також не забудьте встановити посилання на бібліотекиTao(рис. 3).

реалізація
Малюнок 3. Підключення необхідних бібліотек. Для реалізації візуалізації буде використовуватися таймер – після ініціалізації вікна він генеруватиме подію, звану тиком таймера, раз на30мілісекунд. Додайте елемент таймер, перейменуйте екземпляр наRenderTimerі встановіть час тику30мілісекунд (як показано на малюнку 5), а також додайте йому подію для обробки тику.Обов'язково увімкніть таймер (властивість enabled має бути встановлена ​​в true). Подія, яка буде виконуватися при черговому тику таймера, буде викликати функцію відтворення сцени.
реалізація
Малюнок 4. Налаштування таймера. Ініціалізація вікна таOpenGlвідбувається так само, як і в попередніх проектах.

Нам потрібно буде оголосити низку змінних для подальшої роботи програми:

Як і раніше, функціяForm1_Loadвідповідає за ініціалізаціюOpenGL. Але тепер тут ще відбувається побудова масиву геометрії тіла, побудованого обертанням на основі заданого заздалегідь масивуGeometricArray. Form1_Load - це функція обробник події Load для форми, на якій ми розміщуємо елементиуправління.

Отже, геометрія об'єкта побудована, залишається обробити повідомлення таймера для виклику функції відтворення, а також реалізувати безпосередньо функціюDraw.

У функціїDrawми розглянемо три види візуалізації, які будуть використані залежно від встановленого режиму елементаcomboBox.

Візуалізація за допомогою точок – найпростіша. Візуалізація за допомогою ліній чи полігонів – вже складніша.

Намагайтеся максимально ретельно розібрати алгоритм, щоб зрозуміти суть його роботи.

На рисунках 5, 6, 7 представлені результати роботи програми: тіло, що обертається, з різними режимами малювання геометрії.

формування
Малюнок 5. Приклад побудови об'єкта в режимі точок.
обертання
Малюнок 6. Приклад побудови об'єкта в режимі ліній.
обертання
Малюнок 7. Приклад побудови об'єкта в режимі полігонів. У наступному розділі ми розглянемо створення3D-об'єктів, реалізація яких вже є в бібліотеціGLUT, а також функціїOpenGLдля зміни їх положення у просторі та масштабування без змін у структурі геометрії об'єктів.