Категория: Информатика

Условие задачи (тема реферата, контрольной, курсовой работы или диплома):

Южно-Сахалинский институт экономики права и информатики
Кафедра «Компьютерные технологии и системы»

Методические указания для выполнения
практической работы по дисциплине Компьютерная графика

Для студентов специальности ПОВТиАС

Практическая работа №1

Введение в программирование API OpenGL
с использованием библиотеки glut


Задача 2.1.2 [4] Выполнить самостоятельно (из методических указаний)

  1. Убедитесь, что функция в строке 26 действительно играет ключевую роль в функционировании программы. Для этого закомментируйте ее и перекомпилируйте программу, запустив ее на исполнение. Обратите внимание, что в этом случае программа прекращает свою работу после запуска. Восстановите строку 26.
  2. Задайте начальные размеры окна (ширину и высоту), равными половине ширины и высоты экрана. Указание: для получения ширины экрана следует вызвать функцию
    glutGet(GLUT_SCREEN_WIDTH), для получения высоты – glutGet(GLUT_SCREEN_HEIGHT).
  3. Добейтесь того, чтобы при появлении окно размещалось строго по центру экрана.
  4. Определите назначение функции glFlush (в строке 60), закомментировав ее и запустив программу на исполнение. После этого снимите комментарий с этой функции.
  5. Измените цвет фона окна на черный.
  6. Измените цвет вершин квадрата: зеленый на желтый, синий – на красный.
  7. Нарисуйте оси координат. Ось ОХ нарисуйте синим цветом, ось OY – зеленым. При определении длины осей учтите линейные размеры сцены (см. функцию glOrtho в строке 73). Указание: для рисования прямых используйте функцию glBegin(GL_LINES).
  8. Измените выводимую фигуру: замените квадрат на ромб, вершины которого располагаются на осях координат. Размер фигуры произвольный.
  9. Определите назначение функции glViewport, поменяв ее аргументы (в строке 66) следующим образом: glViewport(0, 0, w/2, h/2).
  10. Изменив аргументы функции glOrtho (строка 73) добейтесь, чтобы начало координат располагалось в нижнем левом углу окна.

 Задача 3.1.6 [4.5] Выполните самостоятельно

  1. Наложите ограничение на возможности изменения размеров фигуры с помощью мыши: увеличение или уменьшение разрешите производить только тогда, когда курсор мыши находится над квадратом.
  2. Добавьте возможность увеличения или уменьшения фигуры с помощью клавиш + и – соответственно.
  3. Измените программу так, чтобы при запуске ее окно выводилось в полноэкранном режиме.
  4. Замените квадрат на ромб, вершины которого находятся на осях координат. Длина стороны равна size. Для ромба должны выполняться все введенные к данному времени возможности программы: увеличение/уменьшение с помощью мыши (при условии нахождения курсора над фигурой) и клавиатуры, изменение курсора мыши при входе в область размещения фигуры.
  5. Придумайте способ динамического управления цветами вершин ромба с помощью клавиш алфавитно-цифровой клавиатуры. Программа должна предоставить возможность задать произвольный цвет для любой вершины ромба.
    Возможное решение: для каждой вершины задайте массив цветов из четырех элементов (для интенсивностей компонентов RGBA).  Для изменения интенсивности красной составляющей активной вершины нужно нажать клавишу r (уменьшение) или R (то есть Shift+R) для увеличения. Аналогично можно задействовать клавиши g/G, b/B. При таком подходе только одна из вершин ромба может активной (для изменения активной вершины можно нажать на клавиши 1, 2, 3 или 4 – при этом активной должна стать вершина с соответствующим номером).


Связанные файлы методических указаний (методички):

Введение в программирование API OpenGL с использованием библиотеки glut


Формат файлов решений: Visual Studio Project, txt файл с пояснениями
Автор: admin (посмотреть информацию)
Добавлено: 30.03.2011 04:15
Статус: проверено
Просмотров: 1406
Покупок: 0

Цена: 500 рублей

Оплатить покупку можно следующими способами:
Банковские карты
Мобильный платеж
Webmoney
Яндекс-деньги
Терминалы оплаты, QIWI кошелек, Терминал ЕСГП, Элекснет и.т.д.
И другие способы оплаты
Введите ваш email: