Контрольная работа: Побудова ліній та точок з допомогою комп’ютерної графіки
glLineStipple (1 $FOFO);
glEnable (GL_LINE_STIPPLE);
У функції glLinestipple перший аргумент - масштабний множник, другий аргумент задає шаблон штрихування (побітовим способом). За допомогою програмного середовища Delphiдуже легко можна побудувати - ще один приклад на використання штрихування (мал. 2. 1).
Мал. 2. 1. Декілька готових шаблонів штрихових ліній
Призначена для користувача процедура drawOneLine викликається для відтворення кожного окремого відрізка:
procedure TfrmGL. drawOneLine(xl, yl x2, y2: GLfloat);
begin glBegin(GL_LINES);
glVertex2f glVertex2f glEnd;
end;
(2 * xl / ClientWidth - 1. 0, yl (2 * x2 / ClientWidth - 1. 0 y2/ ClientHeight - 0. 5); / ClientHeight - 0. 5);
Змістовна частина коду перемальовування вікна виглядає так:
glColor3f (1. 0, 1. 0, 1. 0); // всі відрізки малюються білим // другий рядок: малюється 3 відрізки, все з різним штрихуванням
glEnable (GL_LINE_STIPPLE);
glLineStipple (1, $0101); // точковий
drawOneLine (50. 0, 125. 0, 150. 0, 125. 0);
glLineStipple (1 $OOFF); // штрихи
drawOneLine (150. 0, 125. 0, 250. 0, 125. 0);
glLineStipple (1 $1C47); // штріхпунктір
drawOneLine (250. 0, 125. 0, 350. 0, 125. 0);
// третій рядок: малюється три широкі відрізки з тим же штрихуванням
glLineWidth (5. 0); // задаємо ширину лінії
glLineStipple (1, $0101);
drawOneLine (50. 0, 100. 0, 150. 0, 100. 0);
glLineStipple (1 $00FF);
drawOneLine (150. 0, 100. 0, 250. 0, 100. 0);
glLineStipple (1 $1C47);
drawOneLine (250. 0, 100. 0, 350. 0, 100. 0);
glLineWidth (1. 0);