C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 25 - Треугольник. Режимы STRIP и FAN / Open GL / Графика

Шаг 25 - Треугольник. Режимы STRIP и FAN

Как и было обещано, рассматриваем еще два режима рисования треугольников STRIP и FAN.

Как обычно делаем стандартный проект, создадим переменную m_bMode, которая позволит переключаться между режимами STRIP и FAN. Сделаем обработчик левой кнопки:

void CExampleView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if(m_bMode)
		m_bMode = FALSE;
	else
		m_bMode = TRUE;
	InvalidateRect(NULL, FALSE);
	CView::OnLButtonDown(nFlags, point);
}

Новая 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);			// размер точек

	glShadeModel(GL_SMOOTH);

	if(m_bMode)
	{
		glColor3f (1.0, 0.0, 0.5);
		glBegin (GL_TRIANGLE_STRIP);
			for(int i=0; i<=6; i++)
			{
				glVertex2f(0.0f, 0.0f);
				glVertex2f(0.5f*(float)cos(2*Pi*i/6),
					0.5f*(float)sin(2*Pi*i/6));
			}
		glEnd();
	} else {
		glColor3f (1.0, 0.5, 0.5);
		glBegin (GL_TRIANGLE_FAN);
			glVertex2f(0.0f, 0.0f);
			for(int i=0; i<=6; i++)
				glVertex2f(0.5f*(float)cos(2*Pi*i/6),
					0.5f*(float)sin(2*Pi*i/6));
		glEnd();
	}
}

Ну вот и все. Мне кажется, что отличие режима STRIP от FAN очевидно. В режиме FAN - общая вершина, в режиме STRIP - общая грань.

Шпаргалка

  1. Хватит смотреть в шпаргалку.
  2. Берешь и делаешь.

Загрузить проект | | |
Автор Kirill V. Ratkin.
[AD]