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

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

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

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

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

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

от 25%

Подписываем

договор

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

Скидка 25% при заказе до 21.4.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. Реферат на тему Ecology Essay Research Paper Ecology PaperOn the
2. Реферат Постмодернизм в искусстве хх века
3. Реферат на тему Субъекты политики
4. Реферат История и культура Древней Индии
5. Курсовая Использование фотоупругого эффекта для измерения физических величин
6. Реферат История развития вычислительной техники 11
7. Реферат на тему Western Ideas Impact On Civilizations Essay Research
8. Статья Создаем резерв по сомнительным долгам в свете изменений в налоговом законодательстве
9. Статья на тему Дорогами последних пятилеток экономика должна быть экономной
10. Контрольная работа Конституционный суд Российской Федерации