Шаг 23 - Замкнутые линии

В шаге 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, то всего лишь одну прямую, третья точка была бы игнорирована библиотекой. Попробуйте поэкспериментировать сами.

Шпаргалка

  1. Сделать обычный проект
  2. Установить режим рисования линий GL_LINE_LOOP

Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Kirill V. Ratkin - 25.05.2000