Определение. Полигон называется выпуклым, если прямая, соединяющая две его любые точки, целиком лежит внутри него.

Френсис Хилл

Рис» 2.20. Выпуклые и невыпуклые полигоны На рис. 2.20 показано несколько полигонов. Из них только полигоны Г, Д и Еявляются выпуклыми. (Проверьте для надежности, что каждый из этих полигонов удовлетворяет определению выпуклости). Г несомненно выпуклый: все треугольники являются таковыми. А не является даже простым (вспомните главу 1), поэтому он не может быть выпуклым. £ и В в некоторых точках «изогнуты внутрь». (Найдите две такие точки полигона Б, что прямая, соединяющая их, не лежит целиком внутри Б.)

Для рисования выпуклого полигона по его вершинам (х0, у0), (х{, t/t),(хп, уп) используйте обычный список вершин, однако поместите его между командами glBegin(GL_P0LYG0N) и glEndO:

glBegin(GL_P0LYG0N); glvertex2f(x0. yO): glvertex2f(xl. yl):

g!Vertex2f(xn. yn); glEndO: Нарисованный полигон будет закрашен текущим цветом. Его также можно заполнить штриховым узором (stipple pattern) (см. тематическое задание 2.5). Позднее мы научимся вставлять внутрь полигонов изображения - это один из способов нанесения тедсстуры.

2.3. Создание рисунков из линий На рис. 2.21 показано несколько заполненных выпуклых полигонов. В главе 10 мы будем изучать алгоритм заполнения произвольных полигонов, выпуклых и невыпуклых.

Френсис Хилл

Рис. 2.21. Несколько заполненных выпуклых многоугольников

2.3.6. Другие графические примитивы в OpenGL

OpenGL поддерживает рисование еще пяти объектов. На рис. 2.22 показаны примеры каждого из них. Для рисования какого-нибудь из них необходимо использовать в команде glBeginO константу, изображенную рядом с ним.

Френсис Хилл

Рис. 2.22. Другие типы геометрических примитивов Следующий список объясняет назначение каждой из этих пяти констант: О СЬ_ТК1АМСЬЕ5: берет вершины из списка по три за один прием и рисует для каждой тройки отдельный треугольник.

О СЬ_С_иАВ8: берет вершины по четыре за один прием и рисует для каждой четверки отдельный четырехугольник.

О СЬ_ТК1АМСЬЕ_5ТК1Р: (полоса из треугольников) рисует последовательность треугольников, опирающихся на тройки вершин: vl, ю2, затем гх,, г>3, затем v2t г>3, а4 и т. д. (порядок следования такой, что все треугольники «кладутся поперек» в одном направлении, например, против часовой стрелки).


⇐ Предыдущая| |Следующая ⇒