Урок 2 - Прості примітиви - The Delphi
Минулого уроку ми розглянули ініціалізацію OpenGL. Цей урок буде присвячений малюванню та розфарбовуванню простих примітивів: точка, лінія, трикутник та квадрат. У нашому прикладі змінимо формат пікселя.
Після рядка Допишемо: Ми повідомили системі, що використовуватиметься подвійна буферизація. Це потрібно щоб зображення не мерехтіло.
У процедурі створення Форми напишіть: Далі в обробнику подіїForm1 OnResizeстворимо процедуру перемальовування вікна. ФункціяglFrustumмає 6 параметрів, перші 4 з них, це межі відсікання: верхня, права, нижня, ліва. Останні 2 параметри – це передня та задня межа відсікання.
ФункціяgluLookAtмає 9 параметрів, перші 3 з них - позиція спостерігача (x, y, z), наступні 3 параметри - точка спостереження (x, y, z) та останні 3 параметри - вектор верха.
InvalidateRect (Handle,nil,False); перемальовує форму набагато швидше, ніж Form1.Repaint.
Для того, щоб наше вікно оновлювалося, потрібно викликати процедуруFormResizeдо відображення примітивів. Все, з приготуванням ми закінчили, Тепер приступимо до малювання примітивів і почнемо ми з точки. Усі фігури малюються в логічних дужкахglBegin(param); таglEnd; де param - тип примітиву, що малюється.
glBegin()може мати один із таких параметрів:
- GL_PONTS- точка
- GL_LINES- лінія
- GL_TRIANGLES- трикутник
- GL_QUADS- квадрат
- GL_POLYGON– багатокутник
Тепер намалюємо крапку, у процедуріFormPaintпісля очищення буфера кольору запишемо наступний код:

Розфарбуємо у червоний колір:


Бракує квадрата і трикутника. Давайте намалюємо!

У прикладі даного уроку я зробив невеликий додаток: при натисканні стрілки вправо вся система координат повертається вправо функцією glRotatef(кут, x, y, z) де x, y, z – координати осі повороту, а при натисканні на стрілку вліво, то вся система координат повертається вліво.
Можете поекспериментувати та намалювати щось інше.
У наступному уроці ми будемо працювати з освітленням і намалюємо об'ємні геометричні фігури з світлом, що падає на них.
Джерело: www.thedelphi.ruАвтор: Клящицький ВіталійОпубліковано: 13 Травня 2012Переглядів: