glBegin(GL_LINE_STRIP): // draw an open polyline // рисуем открытую ломаную

glVertex2i(20. 10):
glVertex2i(50. 10);
glVertex2i(20. 80):
glVertex2i(50. 80): glEndO; glFlushO:

генерирует ломаную, изображенную на рис. 2.10, а. Такие атрибуты, как цвет, толщина и штриховка, могут быть заданы для ломаных линий таким же способом, как это было для одиночных прямых линий. Если нужно соединить последнюю точку с первой, чтобы ломаная линия превратилась в полигон, достаточно просто заменить GL_LINE_STRIP на GL_LINE_L00P. Полученный полигон изображен на рис. 2.10, б.

Полигоны, нарисованные с помощью 61__1ЛМЕ_1_00Р, нельзя заполнять цветом или узором. Для рисования закрашенных полигонов следует использовать команду д1Вед1'п(61__Р01-У60М), которую мы будем рассматривать позднее.

Пример 2.3.1. Рисование линейных графиков В примере 2.2.3 мы рассматривали построение точечного графика функции в осях /(х) - х из последовательности точек с координатами (х, /(л:,)). Линейный график является непосредственным расширением этого подхода: эти же самые точки попросту соединены отрезками прямой, то есть получается ломаная линия. Рисунок 2.11 представляет собой пример такого построения для функции

/(*) = 300-100 со5(2ялг/100) + 30 соз(4ялг/100) + б со8(6ях/100), где х изменяется в шагах от 3 до 100 шагов. При увеличении этого рисунка была бы видна последовательность соединенных между собой отрезков прямой; в изображении же нормального размера они сливаются вместе и выглядят как плавно изменяющаяся кривая.

Процесс вычерчивания графика функции с помощью отрезков прямой почти идентичен созданию точечного рисунка, так что можно использовать (с небольшими изменениями) программу из листинга 2.7. Нам следует произвести масштабирование и сдвиг начерченных прямых, чтобы правильно разместить их в окне. Это требует вычисления констант Л, В, Си О аналогично тому, как это делалось нами раньше (см. уравнение 2.1). В листинге 2.8 показаны те изменения, которые следует внести во внутренний цикл рисования в функции туШэрТауО:


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