|
|
Общие положения OpenGL
Графическая библиотека OpenGL (Open Graphics Library)
в настоящий момент хорошо известна и описана в
литературе. Она позволяет без специальных математических знаний создавать
сложные трехмерные объекты и манипулировать ими.
Для выполнения нашей лабораторной работы достаточно знать
лишь несколько графических функций (команд). Любознательным студентам
следует обратиться к литературе. Структура программы и синтаксис команд
объясняется на лекции. Однако для «особо талантливых и одаренных»
студентов, пропустивших лекцию можно сделать краткие напоминания о
понятиях: вершины и примитивы библиотеки OpenGL.
Под вершиной понимается точка в трехмерном пространстве,
координаты которой можно задавать следующим образом:
void glVertex[2 3 4][s i f
d](type coords) или
void glVertex[2 3 4][s i f
d]v(type *coords)
Координаты точки задаются максимум четырьмя значениями:
x, y, z, w, при этом можно указывать два (x,y) или три (x,y,z) значения, а
для остальных переменных в этих случаях используются значения по
умолчанию: z=0, w=1. Число в названии команды соответствует числу явно
задаваемых значений, а последующий символ – их типу.
Однако чтобы задать какую-нибудь фигуру одних координат
вершин недостаточно, и эти вершины надо объединить в одно целое. Для этого
в OpenGL используется понятие примитивов, к которым относятся точки,
линии, треугольники, четырехугольники, многоугольники (полигоны) и так
далее.
Задание примитива происходит внутри командных скобок:
void glBegin( GLenum mode)
void glEnd(void)
Параметр mode определяет тип примитива. Для однотипности
команд мы будем рассматривать каждую грань делали как полигон:
GL_POLYGON последовательно задаются вершины
выпуклого многоугольника.
Для задания текущего цвета вершины используются команды
void glColor[3 4][b s i f](GLtype components) или
void glColor[3 4][b s i f]v(GLtype components)
Первые три параметра задают
R, G, B компоненты цвета, а последний параметр при необходимости
определяет alpha-компоненту, которая задает уровень прозрачности
объекта.
Например, чтобы нарисовать
грань детали в виде полигона из четырех вершин красного цвета, достаточно
написать:
glBegin(GL_POLYGON);
glColor3f(1.0,0.0,0.0);
glVertex3f(0.9, 0.2,0.1);
// где x=0.9, y=0.2, z=0.1
glVertex3f(0.9, 0.6, 0.1);
//где x=0.9, y=0.6, z=0.1
glVertex3f( 0.9, 0.6, 0.3);
//где x=0.9, y=0.6, z=0.3
glVertex3f( 0.9, 0.2, 0.3);
//где x=0.9, y=0.2,z=0.3
glEnd();
Для задания цвета фона
используется команда
void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf
alpha).
Значения должны находиться в отрезке [0,1] и по умолчанию
равны нулю.
<<ПРЕДЫДУЩАЯ
<<СОДЕРЖАНИЕ>>
СЛЕДУЮЩАЯ>>
|