Построение геометрических тел с помощью библиотеки OpenGL

1998
знаков
0
таблиц
1
изображение

Приднестровский Государственный Университет

им. Т.Г.Шевченко

Контрольная работа №3

Тема: «Построение геометрических тел с помощью библиотеки OpenGL».

Тирасполь, 2010 г.


1. Цель: Изучить команды поворота, переноса, масштабирования и построения основных примитивов графической библиотеки OpenGL.

2. Задача: Написать программу, рисующую проволочный чайник. При нажатии на кнопки w, s, a, d, [, [ он должен поворачиваться вокруг осей X, Y, Z.

3. Методика решения: Строим проволочный чайник. Определяем кнопки. При нажатии на них изменяем соответствующие углы и перерисовываем чайник.

Решение

#include <GL/glut.h>

#include <stdlib.h>

GLint Width = 512, Height = 512;

GLdouble alpha = 0, betta = 0, gamma = 0; // углы поворота

//Функция вырисовки на экране

void Display()

{

glClearColor(1, 1, 1, 1);

glClear(GL_COLOR_BUFFER_BIT);

glColor3d(0, 0, 0);

glPushMatrix();

glTranslated(5, 5, 0);

glRotated(5*alpha, 1, 0, 0);

glRotated(5*betta, 0, 1, 0);

glRotated(5*gamma, 0, 0, 1);

glutWireTeapot(2);

glPopMatrix();

glFinish();

}

//Функция вызывается при изменении размеров окна

void Reshape(GLint w, GLint h)

{

Width = w;

Height = h;

// устанавливаем размеры области отображения

glViewport(0, 0, w, h);

// отрографическая проекция

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glOrtho(0, 10, 0, 10, -10, 10);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

// Функция обработки сообщений с клавиатуры

void Keyboard(unsigned char key, int x, int y)

{

#define ESCAPE 27

if (key == ESCAPE)

exit(0);

if (key == ‘w’)

alpha += 0.1;

if (key == ‘s’)

alpha -= 0.1;

if (key == ‘a’)

betta += 0.1;

if (key == ‘d’)

betta -= 0.1;

if (key == ‘[‘)

gamma += 0.1;

if (key == ‘]’)

gamma -= 0.1;

glutPostRedisplay();

}

// Главный цикл приложения

void main(int argc, char* argv[])

{

glutInit(&argc, argv);

glutInitDisplayMode(GLUT_RGB);

glutInitWindowSize(Width, Height);

glutCreateWindow("True Teapot");

glutDisplayFunc(Display);

glutReshapeFunc(Reshape);

glutKeyboardFunc(Keyboard);

glutMainLoop();

}

Результаты

for_third_lab.jpg


Информация о работе «Построение геометрических тел с помощью библиотеки OpenGL»
Раздел: Информатика, программирование
Количество знаков с пробелами: 1998
Количество таблиц: 0
Количество изображений: 1

Похожие работы

Скачать
30594
3
12

... тел, а также позволяет начинающим программистам реализовать принцип обучения на примерах. Продукт разработан на языке программирования Мicrosoft Visual C++ 5.0 с использованием объектно-ориентированной методологии. При разработке была задействована библиотека моделирования трехмерной графики OpenGL. Запуск программы возможен только в операционной среде Microsoft Windows 95. Диалог пользователя с ...

Скачать
52592
2
3

... представляют собой числа с плавающей точкой. Наличие различных форматов позволяет библиотеке OpenGL принимать данные пользователя в его собственном формате данных. Некоторые команды библиотеки OpenGL допускают использование 8 различных типов данных в качестве своих параметров. Буквы, используемые в качестве суффиксов для того, чтобы определить эти типы данных для реализации ISO С библиотеки ...

Скачать
73110
0
0

... года. Начался шквал: все журналы писали о Windows 95, стали выходить книги, проводилась широкая реклам­ная компания, все производители программного обеспечения стали переделывать свои продукты для этой новой операционной системы, производители компьютеров и комплектующих старались получить логотип Designed for Windows 95. Причина же, по которой Windows 95 оказалась в центре всеобщего внимания, ...

Скачать
47390
3
1

... актуальностью информации, идентифицировать ошибки и избежать перепроектирования (по оценкам компании Aberdeen, не менее 70 % затрат на производство и сопровождение продукции приходится на этап проектирования). PLM-система способна предоставить пользователю информацию в форме, соответствующей выполняемым функциям в жизненном цикле создаваемого продукта: трехмерные модели, схематические диаграммы, ...

0 комментариев


Наверх