Skip to content

3DViewer_v1.0 - это программа для визуализации 3D каркасных моделей. С её помощью вы можете открывать файлы формата .obj и просматривать трехмерные модели в виде проволочных каркасов.

License

Notifications You must be signed in to change notification settings

Hasuk1/School-21-3DViewer_v1.0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3DViewer v1.0

priev

Описание проекта

3DViewer_v1.0 - это программа для визуализации 3D каркасных моделей. С её помощью вы можете открывать файлы формата .obj и просматривать трехмерные модели в виде проволочных каркасов.

Работа над проектом была разделена на две части Backend и Frontend.

Установка и удаление

Для установки приложения:

  1. скачайте репозиторий с исходным кодом;
  2. после зайдите в дирректорию src;
  3. в терминале пропишите команду make install
$make install

Дождитесь установки и можете пользоваться. Приложение будет установленно в дирректорию проекта в папку build. А также будет добавлен ярлык на рабочий стол.

Для удаления приложения:

$make uninstall

После приложение будет полностью удаленно с Вашего ПК.

Backend

Backend заключает в себе работу с файлами .obj (парсинг файла и занесения данных о модели в структуру) и аффинные преобразования(перевод, вращение, масштабирование). Часть Backend была разработана на языке прграммирования С.

Все модули из этой части были покрыты unit-тестами. Для запуска можете прописать:

$make test

Покрытие всех тестов более 98% кода.

$make gcov_report

Frontend

app

Часть "Frontend" приложения была разработана с использованием языка программирования C++ и библиотеки Qt. Это обеспечивает интуитивно понятный и удобный интерфейс для пользователей, который позволяет легко взаимодействовать с моделью, редактировать параметры отображения и создавать скриншоты или gif-анимации

Основные функции приложения

1. Выбор файла модели и вывод его имени: Пользователь может выбрать файл модели через диалоговое окно и имя выбранного файла будет отображаться в соответствующем поле на интерфейсе.

open_file

2. Визуализация каркасной модели: Область визуализации позволяет отображать загруженную модель в виде каркасной модели, представляющей вершины и ребра.

3. Перевод модели: Пользователь может указать параметры для перевода модели вдоль осей X, Y и Z с помощью соответствующих полей ввода и кнопок.

move

4. Поворот модели: Пользователь может задавать угол поворота для модели вокруг осей X, Y и Z с использованием полей ввода и кнопок.

rotate

5. Масштабирование модели: Пользователь может изменять масштаб модели с помощью поля ввода и кнопок.

scale

6. Информация о загруженной модели: В разделе информации отображается имя загруженного файла, количество вершин и ребер в модели.

info

7. Тип проекции: Пользователь может выбрать тип проекции для отображения модели: параллельную или центральную.

8. Настройки отображения ребер и вершин: Пользователь может настраивать тип (сплошная, пунктирная), цвет и толщину ребер, а также способ отображения вершин (нет, круг, квадрат), цвет и размер.

9. Выбор цвета фона: Пользователь может выбрать цвет фона для области визуализации.

custom

Все пользовательские настройки сохраняются, так что они будут восстановлены при следующем запуске приложения.

Создание скриншота и gif-анимации

makeSCast

1. Создание скриншота (screenshot): Пользователь может нажать кнопку "screenshot", чтобы сохранить текущий вид модели как изображение скриншота.

screen

2. Создание gif-анимации (gif): Пользователь может нажать кнопку "gif", чтобы записать скринкаст текущих пользовательских аффинных преобразований модели в формат gif-анимации. Анимация будет иметь разрешение 640x480, скорость 10 кадров в секунду и продолжительность 5 секунд.

gif

About

3DViewer_v1.0 - это программа для визуализации 3D каркасных моделей. С её помощью вы можете открывать файлы формата .obj и просматривать трехмерные модели в виде проволочных каркасов.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published