- •Лабораторна робота 2
- •Побудова дротяних зображеньІз застосуванням бібліотеки OpenGl Теоретичні відомості Бібліотека Open gl – загальні відомості
- •Стандартний проект Delphi для застосування бібліотеки Open gl
- •Модель кольору бібліотеки Open gl
- •Система координат в бібліотеці Open gl
- •Графічні примітиви бібліотеки Open gl
- •Сукупність точок
- •Сукупність відрізків прямих ліній
- •Ламані лінії
- •Замкнута ламана лінія
- •Товщина ліній та шаблон їх заповнення
- •Розв’язок
- •Завдання на лабораторну роботу
- •До звіту включити:
Розв’язок
Спершу сформуємо числове значення шаблона для формування штрихпунктирних ліній:
Номер розряду |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Значення біта |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
Вигляд лінії | ||||||||||||||||
Шістандцяткове число |
F |
F |
C |
C |
Таким чином двійкове значення шаблона для штрихпунктирних лінійb1111111111001100, що відповідає $FFCC.Текст фрагмента процедури, що формує наведене на рис. 2.2 зображення подано нижче:
// Включення режиму згладжування та режиму управління шаблонами
glEnable(GL_LINE_SMOOTH);
glEnable(GL_LINE_STIPPLE);
// Виведення на екран трикутника
glColor3d(1,0,0); // Червоний колір переднього плану
glLineStipple(2,$FFFF); // Встановлення шаблону – суцільної лінії
glLineWidth(3); // Товщина лінії 3 піксела
glBegin(GL_LINE_LOOP); // Трикутник – замкнена ламана лінія
glVertex2d(0,1); // Перша вершина
glVertex2d(cos(-pi/6),sin(-pi/6)); // Друга вершина
glVertex2d(cos(-5*pi/6),sin(-5*pi/6)); // Третя вершина
glEnd;
// Виведення на екран кола
glColor3d(0,0,1); // Синій колір переднього плану
glLineStipple(2,$FFCC); // Встановлення шаблону штрихпунктир
glLineWidth(1); // Товщина лінії 1 піксель
glBegin(GL_LINE_LOOP); // Коло – замкнена ламана лінія
Fi:=0; // Початкове значення кута у полярної системі координат
while Fi<=2*pi do
begin
glVertex2d(cos(Fi),sin(fi)); // Вершина
Fi:=Fi+pi/100; // Приріст кута
end;
glEnd;
Результат роботи даної програми показано на рис. 2.3.
Рис. 2.3. Результат роботи програми
Слід пам’ятати, що всі змінні, які застосовуються в розглянутих прикладах необхідно попередньо оголошувати. Наприклад в останньому прикладі слід попередньо оголосити змінну Fi типу single.
Завдання на лабораторну роботу
З застосуванням графічної бібліотеки Open GL розробити програму, що виводить на екран графік функції на проміжку -1.0 ≤ x ≤ 1.0 згідно варіанта. Графік повинен виводитися в окремому вікні, на графікуслід показати координатні осі зі стрілками та сітку (вся область виводу графікаповинна бути розділена на десять клітин по осях абсцис та ординат). Лініяграфіка функції повинна відрізнятися від координатних осей кольором та бути в2 рази товщею. Лінії сітки повинні відображатися пунктиром.
Варіанти завдань наведено в таблиці:
№ |
Функція |
№ |
Функція |
1 |
|
14 |
|
2 |
|
15 |
|
3 |
|
16 |
|
4 |
|
17 |
|
5 |
|
18 |
|
6 |
|
19 |
|
7 |
|
20 |
|
8 |
|
21 |
|
9 |
|
22 |
|
10 |
|
23 |
|
11 |
|
24 |
|
12 |
|
25 |
|
13 |
|
26 |
|
До звіту включити:
1. Конспективний виклад теоретичних відомостей, необхідних для виконання лабораторної роботи.
2. Текст проекту Object Pascal що формує зображення.
3. Графічне зображення графіка функції.
4. Висновки по роботі.
Вижол Ю.О.Комп’ютерна графіка