GL_TRIANGLE_FAN - веер треугольников: v0v,v2, v0v2v3, v0v3v4>… ;
GL_QUADS - четверки вершин, задающие выпуклые четырех угольники: v0v,v2v3, v4v5v6v7,…;
GL_QUAD_STRIP - полоса четырехугольников:
VoV^v2,v2Viv5v4,v4v5v7v6,…
Основы библиотеки OpenGL
Процедура void glEnd (); отмечает конец списка вершин.
Между командами glBegin и glEnd могут находиться следующие команды: gIVertex*, glColor*, glNormal*, glCallList, glCallLists, glTexCoord*, glEdgeFlag и glMaterial*. Все остальные команды OpenGL недопустимы между командами glBegin и glEnd и приведут к возникновению ошибки. По команде glEnd осуществляется вывод текущего объекта.
Услуга по пересадке взрослых деревьев.
Рассмотрим в качестве примера задание окружности при помощи правильного многоугольника.
glBegin ( GL_LINE_LOOP );
for ( int i = 0; i < N; i++ ) {
float angle =2*M_PI*i/N;
glVertex2f ( cos ( angle ), sin ( angle ) );
}
glEnd ();
Хотя многие команды могут находиться между glBegin и glEnd, вершины генерируются при вызове glVertex*. В момент вызова glVertex* OpenGL присваивает создаваемой вершине текущий цвет, координаты текстуры, вектор нормали и т. д.
Рисование точек, линий и многоугольников Для задания размеров точки служит процедура void glPointSize ( GLfloat size ); которая устанавливает размер точки в пикселах, по умолчанию размер точки равен единице.
Для задания ширины линии в пикселах служит процедура
void glLineWidth ( GLfloat width ),-
Можно задать шаблон, которым будет рисоваться линия, при помощи процедуры
void glLineStipple ( GLint factor, GLushort pattern );
Шаблон задается переменной pattern, и он растягивается в factor раз. Для использования шаблонов линий необходимо разрешить применение шаблонов линий при помощи команды
glEnable ( GL_LINE_STIPPLE ) ;
Запретить использование шаблонов линий можно командой
glDisable ( GL_LINE_STIPPLE );
Многоугольники рисуются как заполненные области пикселов внутри границы, хотя их можно рисовать либо только как граничную линию, либо просто как набор граничных вершин.