Следите за новостями GitVerse в нашем телеграм-канале

3DViewer_v1

Форк
0

5 месяцев назад
5 месяцев назад
README.md

3DViewer Documentation

Project Description

3DViewer — это программа для визуализации каркасных моделей в трехмерном пространстве. Она разработана на языке C стандарта C11 с использованием компилятора gcc и дополнительных библиотек и модулей QT. Программа предоставляет функционал для загрузки, перемещения, вращения и масштабирования 3D моделей в формате OBJ. Интерфейс программы реализован на базе одной из следующих GUI-библиотек: GTK+, CEF, Qt (для Linux), GTK+, Nuklear, raygui, microui, libagar, libui, IUP, LCUI, CEF, Qt (для Mac).

Основные функции программы

  • Загрузка каркасной модели из файла формата OBJ (поддержка только списка вершин и поверхностей).
  • Перемещение модели по осям X, Y, Z на заданное расстояние.
  • Вращение модели вокруг своих осей X, Y, Z на заданный угол.
  • Масштабирование модели на заданное значение.
  • Настройка типа проекции (параллельная и центральная).
  • Настройка типа (сплошная, пунктирная), цвета и толщины ребер, способа отображения (отсутствует, круг, квадрат), цвета и размера вершин.
  • Выбор цвета фона.
  • Сохранение настроек между перезапусками программы.
  • Сохранение изображений в форматах BMP и JPEG.
  • Запись скринкастов в формате GIF (640x480, 10fps, 5s).

Требования к окружению

  • Компилятор: gcc
  • Стандарт языка: C11
  • Дополнительные библиотеки: Qt, GTK+, CEF и другие
  • Система сборки: Makefile

Структура проекта

  • src
    — папка с исходным кодом программы.
  • Makefile
    — файл для сборки проекта, содержащий цели: all, install, uninstall, clean, dvi, dist, tests, gcov_report.

Структура Makefile

  • all
    — сборка всех целей.
  • install
    — установка программы в указанный каталог.
  • uninstall
    — удаление программы из каталога установки.
  • clean
    — очистка файлов сборки.
  • dvi
    — генерация документации.
  • dist
    — подготовка дистрибутива.
  • tests
    — запуск тестов.
  • gcov_report
    — генерация отчета покрытия кода тестами.

Требования к реализации

  • Программа должна быть разработана в соответствии с принципами структурного программирования.
  • Код должен соответствовать Google Style Guide.
  • Модули, связанные с загрузкой моделей и аффинными преобразованиями, должны быть покрыты unit-тестами.
  • На экране должна быть отображена только одна модель одновременно.
  • Программа должна корректно обрабатывать модели с деталями до 1 000 000 вершин без зависания интерфейса более 0,5 секунды.

Графический интерфейс пользователя

Графический интерфейс программы должен содержать:

  • Кнопку для выбора файла с моделью и поле для вывода его названия.
  • Зону визуализации каркасной модели.
  • Кнопки и поля ввода для перемещения модели.
  • Кнопки и поля ввода для поворота модели.
  • Кнопки и поля ввода для масштабирования модели.
  • Информацию о загруженной модели: название файла, количество вершин и ребер.

Дополнительно. Настройки

Программа должна позволять:

  • Настраивать тип проекции (параллельная и центральная).
  • Настраивать тип (сплошная, пунктирная), цвет и толщину ребер, способ отображения (отсутствует, круг, квадрат), цвет и размер вершин.
  • Выбирать цвет фона.
  • Сохранять настройки между перезапусками программы.

Дополнительно. Запись

Программа должна позволять:

  • Сохранять отрендеренные изображения в файл в форматах BMP и JPEG.
  • Записывать скринкасты текущих пользовательских аффинных преобразований загруженного объекта в GIF-анимацию (640x480, 10fps, 5s).

Описание

Языки

C++

  • QMake
  • Prolog
  • C
  • Makefile
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.