Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Введение в программирование с использованием OPENGL

Автор:   •  Март 22, 2022  •  Лабораторная работа  •  624 Слов (3 Страниц)  •  211 Просмотры

Страница 1 из 3

Министерство Образования и Науки РФ

Новосибирский Государственный Технический Университет

Кафедра ПМТ

Лабораторная работа №1

по дисциплине «Компьютерная графика»

ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ

С ИСПОЛЬЗОВАНИЕМ OPENGL

Факультет:

ПМИ

Группа:

ПМ-34

Вариант:

3

Выполнил:

Преподаватель:

Вагин Д. В.

Задорожный А. Г.

Новосибирск

2016


  1. Цель работы

Ознакомиться с основами использования библиотеки OpenGL и работе с примитивами.

  1. Текст задания

  1. Отобразить в окне множество примитивов – незамкнутых ломаных (вершины которых задаются кликами мыши);
  2. Для завершения текущего набора примитивов и начала нового зарезервировать специальную клавишу;
  3. Предоставить возможность изменения цвета и координат вершин текущего набора примитивов;
  4. Текущее множество примитивов выделять среди других;
  5. Использовать контейнер vector из библиотеки STL для хранения набора примитивов и множества вершин каждого примитива, а для хранения атрибутов рекомендуется использовать стандартный класс struct;
  6. Предусмотреть возможность удаления примитивов и наборов примитивов;
  7. Продублировать команды в меню, созданном с помощью библиотеки GLUT.
  1. Используемые структуры хранения данных

Для реализации объектов программы были использованы следующие структуры:

  1. Класс «точка», описывающий 2D-координаты вершин примитивов.

class point

{

public:

        GLint x, y;

        point(GLint p1, GLint p2);

};

  1. Структура «линия», определяющая незамкнутую ломаную множеством точек и принадлежностью к некоторому набору примитивов.

struct line

{

public:

        vector <point> coordinates;

        int group;

};

  1. Класс «цвет», отражающий принадлежность цвета, заданного в цветовой модели RGB, к определенного набору примитивов.

class colour

{

public:

        GLint red, blue, green;

        int group;

        colour(GLint r, GLint b, GLint g, int gr);

};

  1. Класс «тип линии», отражающий принадлежность типа линии и толщины линии к определенному набору примитивов

class linetype

{

public:

        float widht;

        unsigned short type;

        int group;

        linetype(float _widht, unsigned short _type, int _gr);

};

  1. Руководство пользователя

Управление данной программой реализовано с помощью мыши и клавиатуры. Любые изменения с примитивами и наборами примитивов невозможны в режиме отрисовки текущего примитива.

Кнопка мыши

Назначение

Левая

Фиксирование текущей позиции курсора как следующей (новой) вершины текущей или новой ломаной линии

Правая

Вызов меню

 

Клавиша

Назначение

z

Завершение отрисовки текущего примитива

Пробел (space)

Добавление нового набора примитивов

Стрелка вверх

Переключение между наборами примитивов в порядке возрастания очередности добавления

Стрелка вниз

Переключение между наборами примитивов в порядке убывания очередности добавления

u (U)

Увеличение интенсивности компоненты красного цвета в текущем наборе примитивов

i (I)

Увеличение интенсивности компоненты зеленого цвета в текущем наборе примитивов

o (O)

Увеличение интенсивности компоненты синего цвета в текущем наборе примитивов

j (J)

Уменьшение интенсивности компоненты красного цвета в текущем наборе примитивов

k (K)

Уменьшение интенсивности компоненты зеленого цвета в текущем наборе примитивов

l (L)

Уменьшение интенсивности компоненты синего цвета в текущем наборе примитивов

w (W)

Перемещение вверх текущего набора примитивов

s (S)

Перемещение вниз текущего набора примитивов

a (A)

Перемещение влево текущего набора примитивов

d (D)

Перемещение вправо текущего набора примитивов

delete

Удаление текущего набора примитивов

backspace (←)

Удаление примитива в текущем наборе в порядке убывания очередности добавления

...

Скачать:   txt (9.2 Kb)   pdf (563.3 Kb)   docx (999.4 Kb)  
Продолжить читать еще 2 страниц(ы) »
Доступно только на Essays.club