В шаге 21 мы рассмотрели 2 вида рисования линий: обычный и в режиме strip. В этом очень маленьком примере мы рассмотрим еще 1 вид линии - режим loop.
Режим loop отличается от режима strip только тем, что последняя вершина автоматически будет соединена с первой. Рассмотрим пример. Создайте как обычно проект и функцию OnDraw сделайте такой:
void CExampleView::OnDraw(CDC* pDC) { CRect clientRect; CExampleDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here GetClientRect(&clientRect); glViewport(0, 0, clientRect.right, clientRect.bottom); glClearColor (0.5, 0.5, 0.75, 1.0); // цвет фона glClear (GL_COLOR_BUFFER_BIT); // очистка буфера цвета glLineWidth (20); // размер точек glColor3f (1.0, 0.0, 0.5); // текущий цвет примитивов glBegin (GL_LINE_LOOP); glVertex2f(0,0.5); glVertex2f(0.5,-0.5); glVertex2f(-0.5,-0.5); glEnd(); }
Если бы мы указали вместо GL_LINE_LOOP режим GL_LINE_STRIP, то получили бы просто угол, а если указать GL_LINES, то всего лишь одну прямую, третья точка была бы игнорирована библиотекой. Попробуйте поэкспериментировать сами.