}
/* Обращение к процедуре изображения координатных осей.*/ glEnable (GL_LINE_STIPPLE);
/* Вводится первый набор значений данных (х, у).*/ glLineStipple (1, 0х1С47);
/* Строится штрихпунктирная ломаная линия стандартной ширины.*/ linePlot (dataPts);
/* Вводится второй набор значений данных (х, у).*/ glLineStipple (1, OxOOFF);
/* Строится штрихованная ломаная линия двойной ширины.*/ glLineWidth (2.0); linePlot (dataPts);
/* Вводится третий набор значений данных (х, у).*/ glLineStipple (1, 0x0101);
/* Строится пунктирная ломаная линия тройной ширины.*/ glLineWidth (3.0); linePlot (dataPts); glDisable (GL_LINE_STIPPLE);
Рис. 4.16. Построение трех графиков данных с помощью трех различных стилей и ширин линий: одинарный штрих-пунктирный шаблон, двойной штрихованный шаблон и тройной пунктирный шаблон ДРУГИЕ ЭФФЕКТЫ ПРЯМЫХ ЛИНИЙ В OpenGL
OpenGL позволяет не только описывать ширину, стиль и цвет всей линии, но и задавать линии с градацией цветовых оттенков. Например, цвет сплошной линии можно изменять, присваивая при определении прямой линии различные цветовые значения разным концам отрезка. В следующем фрагменте программы эта возможность иллюстрируется следующим образом: на одном конце линии задается синий цвет, а на другом - красный. Затем сплошная линия изображается с помощью линейной интерполяции кодов заданных концов линии.
glShadeModel (GLJ3MOOTH); glBegin (GL_LINES);
glColor3f (0.0, 0.0, 1.0); glVertex2i (50, 50); glColor3f (1.0, 0.0, 0.0); glVertex2i (250, 250); glEnd ( ); Аргументом функции glShadeModel может быть GL_FLAT. В этом случае прямолинейный отрезок изображается одним цветом - цветом второго конца (250, 250). Следовательно, получается красная линия. В действительности аргумент GL_SMOOTH задается по умолчанию, поэтому отрезок с непрерывной градацией цвета получается даже тогда, когда в программу эта функция не включена.
Чтобы получить другие эффекты, соседние линии изображаются с помощью различных цветов и шаблонов. Кроме того, можно воспользоваться возможностью смешивания цветов, накладывая друг на друга линии и другие объекты с различными значениями альфа. Мазки кисти или другие художественные эффекты моделируются с помощью пиксельного массива и смешивания цветов. Кроме того, пиксельный массив можно перемещать интерактивно и таким образом строить прямолинейные отрезки. Отдельным пикселям из пиксельного массива присваиваются различные значения альфа, в результате чего линии выглядят как нарисованные с помощью кисти или пера.
АТРИБУТЫ ЗАКРАШЕННЫХ ФИГУР
В большинстве графических пакетов закрашенные фигуры ограничиваются многоугольниками, которые можно описать с помощью линейных уравнений. Возможно и более жесткое условие - все закрашенные фигуры должны быть выпуклыми многоугольниками (чтобы строки развертки не пересекались более чем с двумя сторонами границ). Однако в общем случае закрашивать можно любые заданные участки, в том числе окружности, эллипсы и другие объекты с криволинейными границами. Кроме того, такие приложения, как программы рисования, предлагают опции для закрашивания областей произвольной формы.