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 руб./мес


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




 5 - Плоскости в пространстве / Open GL / Графика

Шаг 5 - Плоскости в пространстве

Только изменение кода. Меняем функцию display:

void CALLBACK display (void)
{
	glMatrixMode (GL_PROJECTION);
	glLoadIdentity ();
	gluPerspective (130, 1, 50, 0);
	glMatrixMode (GL_MODELVIEW);
	glLoadIdentity ();
//_____________NEW _________
	gluLookAt (350, 350, 300, 150, 150, 0, 0, 1, 0);
	glColor3f(0.0, 0.0, 1);
	glBegin(GL_POLYGON);
		glVertex3f(100,100,100);
		glVertex3f(200,100,100);
		glVertex3f(200,100,200);
		glVertex3f(100,100,200);
	glEnd();    
	glColor3f(0.0, 1, 0);
	glBegin(GL_POLYGON);
		glVertex3f(100,100,100);
		glVertex3f(100,100,200);
		glVertex3f(100,200,200);
		glVertex3f(100,200,100);
	glEnd(); 
	glColor3f(1, 0, 0);
	glBegin(GL_POLYGON);
		glVertex3f(100,100,200);
		glVertex3f(100,200,200);
		glVertex3f(200,200,200);
		glVertex3f(200,100,200);
	glEnd(); 
	glColor3f(1, 0, 1);
	glBegin(GL_POLYGON);
		glVertex3f(100,100,100);
		glVertex3f(200,100,100);
		glVertex3f(200,200,100);
		glVertex3f(100,200,100);
	glEnd(); 
// ________END NEW________
	glFlush();
}

Описание

Рисование в пространстве требует некоторого обьемного мышления. Если его нет, увы , правда у меня тоже нет. Но когда я учился в школе, мой преподаватель по физике при решении задач говорил - "Главное чертеж". В институте так уже не говорили. А жаль.

А Теперь взгляните на код. Поменялась точка зрения в gluLookAt. Это правильно, данные то другие.

GL_POLYGON говорит о том, что из вершин соберутся полигоны. Для полигона(плоскости) необходимо минимум 3 точки. Помните - через любые 3 точки можно провести плоскость. Если вершин будет больше, то необходимо быть осторожным, для получения плоскости необходимо расчитывать координаты. Я отрисовал 4 грани (glBegin.....glEnd) 4 раза вызывается.

Функцией glColor3f я сделал разную заливку граням.

Собирайте, запускайте, очень красивая картинка. Попробуйте поменять точки зрения, работает !!!


Шпаргалка

Задайте рисование проскостей:

glBegin(GL_POLYGON);

Плоскость создается минимум из 3 точек. При большем количестве будьте осторожны. Помните геометрию !! Только через 3 точки гарантирована плоскость, остальное от лукавого.


| |
Автор Каев Артем.
[AD]