Основы программирования OpenGL в Borland С+Builder и Delphi


Линии


С линиями – не на много сложнее. Вместо размера у линии указывается ширина:

glLineWidth(width)

сглаживание разрешается следующим образом:

glEnable(GL_LINE_SMOOTH)

Но на этом возможности линий не заканчиваются. Я уже рассказал, как можно нарисовать две или даже три линии, указав всего три вершины (вызываем glBegin с параметром GL_LINE_STRIP или GL_LINE_LOOP), но и это ещё не всё! В OpenGL можно указать штриховку линии! Делается это процедурой glLineStipple(factor, pattern). Здесь pattern – 16-разрядная битовая маска. Например, чтобы нарисовать пунктирную линию, маску надо задать равной 255, что в шестнадцатеричной системе счисления соответствует 00FF, а в двоичной – 0000000011111111. А целое factor показывает, сколько раз будет повторяться каждый бит маски.

Осталось только разрешить штриховать линии: glEnable(GL_LINE_STIPPLE).

Пример.

С++, Delphi

 glEnable(GL_LINE_SMOOTH);

glLineStipple(1,255);

glEnable(GL_LINE_STIPPLE);

glBegin(GL_LINES);

glVertex2f(0,2);

glVertex2f(10,6);

glEnd;

Вот, что получится:




- Начало -  - Назад -  - Вперед -