КурсоваяКомпьютерная графикаГод: 2025ТУСУР: Томский государственный университет систем управления и радиоэлектроники
👁 11💼 0

Готовая курсовая: Двухточечная перспектива 3D‑фигур

Загружена: 18.02.2026 09:40

Реализация двухточечной перспективной проекции в приложении на C++/OpenGL. Описаны используемые функции (glFrustum, gluLookAt), отрисовка тетраэдра, куба и октаэдра, интерактивное управление камерой. Полезно для практики по компьютерной графике и демонстраций.

Содержание

ВВЕДЕНИЕ	4
ОСНОВНАЯ ЧАСТЬ	6
1.	Описание используемой среды реализации	6
2.	Описание используемых возможностей графической библиотеки	6
3.	Описание возможностей и ограничений программного продукта	10
4.	Руководство пользователя	11
ЗАКЛЮЧЕНИЕ	13
СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ	15
ПРИЛОЖЕНИЯ	16

Введение

Курсовой проект выполняется в рамках изучения дисциплины «Компьютерная графика» и посвящен реализации двухточечной перспективной проекции с возможностью интерактивного изменения параметров. Актуальность работы обусловлена важностью понимания перспективных преобразований для создания реалистичных 3D-сцен.
Постановка задачи
Задание: разработать программу, осуществляющую построение двух точечной перспективной проекции трехмерных фигур (тетраэдр, гексаэдр и октаэдр). Предусмотреть построение каркасных изображений проекций фигур с возможностью изменения точек наблюдения.
Таким образом цель работы: разработка программы, визуализирующей трехмерные фигуры (тетраэдр, гексаэдр, октаэдр) в двухточечной перспективе с возможностью:
•	Изменение расстояния до объекта
•	Изменение положения камеры относительно фигур
•	Переключения между фигурами
Исходные данные (графические объекты)
В программе используются три базовых многогранника:
Тетраэдр
•	4 треугольные грани, 4 вершины.
•	Координаты вершин: (0, 1, 0), (-1, -1, 1), (1, -1, 1), (0, -1, -1).
Гексаэдр (куб)
•	6 квадратных граней, 8 вершин.
•	Размер ребра: 1.0 условных единиц.
Октаэдр
•	8 треугольных граней, 6 вершин.
•	Стандартная модель glutWireOctahedron().

Заключение

В ходе выполнения курсовой работы была разработана программа, реализующая построение двухточечной перспективной проекции трёхмерных фигур: тетраэдра, гексаэдра (куба) и октаэдра. Программа позволяет пользователю не только наблюдать за изображением в режиме реального времени, но и изменять ракурс фигуры с помощью клавиатуры, что делает интерфейс интерактивным и удобным для использования.
Успешно реализовано построение каркасных моделей трёх многогранников: тетраэдра (вручную), гексаэдра и октаэдра (через стандартные функции библиотеки GLUT).
Применён подход к созданию двухточечной перспективной проекции, основанный на использовании функций glFrustum() и gluLookAt(), что позволило добиться эффекта несимметричного отображения объектов.
Реализовано управление ракурсом просмотра с помощью клавиш W, A, S, D, обеспечивающее возможность рассмотреть фигуру со всех сторон.
Программа демонстрирует работу с базовыми возможностями OpenGL и FreeGLUT, включая матричные преобразования, управление камерой и обработку пользовательского ввода.
Разработанная программа может быть использована:
•	В учебном процессе, как наглядное пособие при изучении начертательной геометрии и компьютерной графики;
•	При подготовке лабораторных работ и демонстрационных материалов для курсов по 3D-графике и визуализации;
•	Как основа для дальнейшего развития в направлении создания программ для построения сложных проекций и пространственных моделей.
Перспективы использования и развития проекта:
•	Несмотря на то, что программа выполнена в рамках учебной задачи, она имеет потенциал для дальнейшего улучшения и расширения:
•	Можно добавить динамическое задание точек схода и горизонта, что обеспечит строгое соответствие двухточечной перспективе;
•	Добавить графический интерфейс пользователя (GUI) с помощью библиотек для удобства управления;
•	Реализовать сохранение изображений
•	Расширить список поддерживаемых фигур и типов проекций 
Таким образом, разработанная программа является решением, которое может быть использовано как в образовательных целях, так и как основа для более масштабных проектов в области компьютерной графики и трёхмерного моделирования.

Список литературы

1.	Перемитина, Т. О. Компьютерная графика : учеб. пособие / Т. О. Пе ремитина. – Томск : ФДО, ТУСУР, 2024. – 177 с. 2. Ткачев, Н. А. С#. Программирование 2D и 3D векторной графики : учеб. пособие / Н. А.
2.	Ткачев, В. Г. Хлебостроев. – СПб. : Лань, 2018. – 320 с. 
3.	Верма, Р. Д. Введение в OpenGL / Р. Д. Верма. – М. : Горячая линия, 2021. – 304 с.

Подробное описание

📘 О чем эта работа

Курсовой проект посвящён практической реализации двухточечной перспективной проекции трёхмерных фигур с интерактивным управлением. Объектом являются три базовых многогранника (тетраэдр, гексаэдр/куб и октаэдр), а предметом — программная реализация перспективных преобразований в среде C++ с использованием OpenGL, GLU и FreeGLUT.

📚 Что внутри

В пояснительной записке и приложениях содержится: исходный код на C++ (полный листинг в приложении А), подробное описание использованных функций OpenGL и GLU, руководство пользователя и анализ возможностей/ограничений.

  • Исходники: полный листинг программы с функциями init(), display(), reshape(), keyboard(), setTwoPointPerspective() и отрисовками drawTetrahedron(), drawHexahedron(), drawOctahedron().
  • Данные и модели: координаты вершин тетраэдра (например, (0,1,0), (-1,-1,1), (1,-1,1), (0,-1,-1)), встроенные каркасные модели glutWireCube(1.0) и glutWireOctahedron().
  • Технические детали: настройка проекции через glFrustum(), позиционирование камеры через gluLookAt(), переключение проекции при изменении размера окна через gluPerspective() и glViewport().
  • Интерфейс: HUD с подсказками, окно по умолчанию 800×600, фон чёрный, каркас белыми линиями, интерактивные элементы управления клавишами (W,A,S,D, 1-3, +/-).
  • Аналитика и выводы: описание реализованной логики двухточечной перспективы, перечень ограничений (жёстко заданные точки схода, отсутствие текстур/освещения, отсутствие сохранения состояния) и возможные направления доработки.

📊 Для кого подходит

Проект полезен студентам и преподавателям курсов по компьютерной графике, 3D-визуализации и начертательной геометрии; подходит для лабораторных работ, демонстраций принципов перспективы и как основа для расширения учебных приложений.

✨ Особенности

Практическая ценность работы заключается в наличии готового исходного кода на C++ с использованием OpenGL/GLU/FreeGLUT, реализованной двухточечной перспективой через glFrustum() и gluLookAt(), ручной отрисовкой тетраэдра через glBegin(GL_LINE_LOOP) и встроенными каркасными моделями для куба и октаэдра. Программа демонстрирует корректную обработку изменения размеров окна, тест глубины (GL_DEPTH_TEST) и простую подсказку управления в HUD.

❓ Частые вопросы

Подойдет ли для моего ВУЗа?
Структура проекта (введение, основная часть, заключение, список литературы, приложения с кодом) соответствует стандартным требованиям курсовой работы и легко адаптируется под локальные требования.

Можно адаптировать?
Да. Исходный код открыт для доработок: добавить динамическое задание точек схода, GUI, текстуры, освещение, сохранение состояния и расширить набор фигур или проекций.