📘 О чем эта работа
Курсовой проект посвящён практической реализации двухточечной перспективной проекции трёхмерных фигур с интерактивным управлением. Объектом являются три базовых многогранника (тетраэдр, гексаэдр/куб и октаэдр), а предметом — программная реализация перспективных преобразований в среде 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, текстуры, освещение, сохранение состояния и расширить набор фигур или проекций.