glutDi splayFunc(myDi splay): // register redraw function // регистрируем функцию перерисовки (обновления)
mylnitO:
gl utMainLoopO: // go into a perpetual loop // входим в бесконечный цикл
Парикмахерское кресло ремонт гидравлики своими руками https://мастер-рк.рф.
}
Данный код можно было бы для удобства инкапсулировать в подпрограмму drawLinelnt:
void drawLineInt(GLint xl. GLint yl. GLint x2. GLint y2) {
glBegin(GL_LINES):
glVertex2i(xl. yl): glVertex2i(x2. y2):
glEndO:
}
Альтернативную подпрограмму, drawLineFloatO, можно было бы реализовать аналогично. (Как?)
Если между командами glBegin(GL_LINES) и glEndO задано больше двух вершин, то они принимаются парами и каждая пара соединяется отдельным отрезком прямой. Поле для игры в «крестики-нолики» (tic-tac-toe board), приведенное на рис. 2.9, а, можно было бы нарисовать с помощью следующих команд:
g1 Beg i n(GL_LINES):
glVertex2i(10. 20): // first horizontal line // первая горизонтальная линия
glVertex2i(40. 20)
glVertex2i(20. 10): // first vertical line // первая вертикальная линия
glVertex2i(20. 40):
four more calls to glVertex2i() here for the other two lines // здесь еще четыре вызова glVertex2i() для двух // оставшихся прямых glEndO: glFlushO:
OpenGL предлагает средства для задания атрибутов линий. Цвет линии устанавливается точно так же, как и для точек, с использованием функции glColor3f О. На рис. 2.9, б показано применение утолщенных линий, они установлены с помощью команды glLineWidth(4.0). По умолчанию толщина равна 1,0. На рис. 2.9, в показаны пунктирные линии (из точек или из штрихов). Подробности штрихования приведены в тематическом задании 2.5 в конце данной главы.
Начальная стадия: рисование фигур
2.3.1. Рисование ломаных линий и полигонов Напомним (из главы 1), что ломаной линией (polyline) называется совокупность отрезков прямых, соединенных своими концами. Ломаная описывается упорядоченным списком точек, как в равенстве:
Po = (*о> У0)« Pi= У^'-Рп " (*„. УпУ (2-2> В OpenGL ломаная называется «полосой линий» («line strip») и рисуется посредством задания вершин в нужном порядке, между командами glBegin(GL_LINE_STRIP) и glEndO. К примеру, код