Побудова дротяних зображень з застосуванням бібліотеки OpenGL (Лабораторна робота № 2), страница 2

Для встановлення кольору фону в Open GL використовується процедура

glClearColor(R, G, B, Alfa);

де R, G, B – інтенсивності основних кольорів (червоного, зеленого та блакитного відповідно) заданих дійсними числами з діапазону , Alpha – параметр прозорості. Наприклад, для вибору червоного кольору фону слід виконати вказану процедуру з параметрами glClearColor(1, 0, 0, 1), для вибору білого кольору glClearColor(1, 1, 1, 1), для чорного кольору glClearColor(0, 0, 0, 1) і т.п.

Після виконання процедури glClearColor фактичний колір фону форми не змінюється, змін зазнає лише внутрішня змінна Open GL-контексту, що зберігає поточне значення кольору фону. Для зафарбовування форми необхідно виконати процедуру:

glClear(GL_COLOR_BUFFER_BIT);

де параметр  GL_COLOR_BUFFER_BIT – системна змінна, визначена в модулі OpenGL, яка зберігає поточне значення кольору фону. 

Колір переднього плану (колір фігури) визначається процедурами: 

glColor3d(R, G, B);

glColor3f(R, G, B);

glColor3i(R, G, B);

Тут параметри R, G, B мають зміст, аналогічний до попереднього випадку, але відрізняються за типом.   В процедурі glColor3d вони мають тип double,  в процедурі glColor3f – тип float, в процедурі glColor3i – тип integer.

Таким чином фрагмент програми:

glClearColor(0.2, 0.5, 0.75, 1.0); {Встановлення кольору фону}

glClear(GL_COLOR_BUFFER_BIT); {Очистка вікна}

glColor3d(1,1,1); {Встановлення кольору майбутніх зображень}

встановлює колір фону як суміш кольорів з переважаючим синім кольором, очищає вікно (зафарбовує колір фону) та встановлює білий колір для зображень, що будуть виводитися в подальшому. 

Система координат в бібліотеці Open GL

При виведенні зображень засобами Open GL застосовується прив’язана до вікна система координат (рис. 2.1). По замовчанню початок координат знаходиться в центрі вікна, вісь абсцис ОХ – горизонтальна направлена до правого краю екрану, вісь ординат OY – вертикальна і направлена до верхнього краю екрана, вісь аплікат OZ є перпендикулярною до площини екрана і направлена від користувача. Вся видима область має вигляд куба, з початком координат в центрі та довжиною ребер 2 одиниці. Зверніть увагу, що для формування фігур застосовуються координати, незалежні від розміру або положення вікна на екрані. Таким чином, при масштабуванні або зсуві вікна фігура буде масштабуватися та зсовуватися разом з вікном. 


Рис. 2.1. Система координат Open GL

Графічні примітиви бібліотеки Open GL

При побудові векторних зображень здійснюється їх декомпозиція на графічні примітиви (точки, лінії, багатокутники). В бібліотеці Open GL всі графічні примітиви задаються сукупністю їх вершин (точок) стандартним способом. Спочатку виконується процедура

glBegin(Графічний_Примітив);

яка показує початок введення примітиву, визначеного параметром Вид_Примітиву. Потім до примітиву додаються вершини шляхом виконання процедур glVertex2d(x,y), glVertex2f(x,y), glVertex2s(x,y), glVertex2i(x,y) та glVertex3d(x,y,z), glVertex3f(x,y,z), glVertex3s(x,y,z), glVertex3i(x,y,z). При цьому двійка в імені процедури означає застосування двовимірних координат (примітив зображується в площині OXY), а трійка – тривимірних. Остання літера в імені процедури визначає тип змінних, якими задаються координати точки: d – double, f – float, s – shortint, i – integer тощо.

Після того як процедурами glVertex  задано всі точки примітиву слід виконати процедуру glEnd, що показує завершення вводу примітиву.