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

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

Работа добавлена на сайт bukvasha.net: 2015-10-25

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 15.3.2025





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

им. Т.Г.Шевченко
Контрольная работа №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

1. Диплом на тему Развитие межкультурной коммуникации в обучении иностранным языкам
2. Реферат на тему And The Winner Is
3. Реферат на тему Cotroversial Cure Essay Research Paper Controversial CureIf
4. Реферат на тему Deforestation Essay Research Paper Effects of DeforestationThe
5. Реферат на тему The Lost World And 1984 Essay Research
6. Реферат на тему Beowulf Grendel Essay Essay Research Paper Grendel
7. Реферат на тему Euthanasia 2 Essay Research Paper Euthanasia is
8. Реферат Oxford`s teachhing methods of english language
9. Контрольная работа Анализ хозяйственной деятельности ОАО Бокситогорский молочный завод
10. Реферат на тему Much Ado About Dogberry Essay Research Paper