GithubHelp home page GithubHelp logo

3dviewergtkc's Introduction

3dViewerGtkC

В данном проекте разработана программа для визуализации каркасной модели в трехмерном пространстве. Каркасная модель - модель объекта в трёхмерной графике, представляющая собой совокупность вершин и рёбер, которая определяет форму отображаемого многогранного объекта в трехмерном пространстве.
Модели загружаются из файлов формата .obj. Их возможно просматривать на экране с возможностью вращения, масштабирования и перемещения. Применяются собственные матрицы афинных преобразований (вращения, масштабирования и перемещения).

Интерфейс

interface

Реализация

  • Программа разработана на языке Си стандарта C11 с использованием компилятора gcc
  • Сборка программы настроена с помощью Makefile со стандартным набором целей для GNU-программ: all, install, uninstall, clean, dvi, dist, tests, gcov_report. Установка производится в каталог build в директории проекта
  • Программа разработана в соответствии с принципами структурного программирования
  • Код соответствует Google Style
  • Обеспечено покрытие unit-тестами модулей, связанных с загрузкой моделей и аффинными преобразованиями
  • В один момент времени может быть только одна модель на экране.
  • Программа предоставляет возможность:
    • Загружать каркасную модель из файла формата obj (поддержка только списка вершин и поверхностей)
    • Перемещать модель на заданное расстояние относительно осей X, Y, Z
    • Поворачивать модель на заданный угол относительно своих осей X, Y, Z
    • Масштабировать модель на заданное значение
  • 3D-визуализация обеспечивается использованием функций библиотеки OpenGL с применением шейдеров
  • Графический пользовательский интерфейс реализован на базе GUI-библиотеки GTK4
  • Графический пользовательский интерфейс содержит:
    • Кнопку для выбора файла с моделью
    • Зону визуализации каркасной модели
    • Кнопку и поля ввода для перемещения модели
    • Кнопку и поля ввода для поворота модели
    • Кнопку и поле ввода для масштабирования модели
    • Информация о загруженной модели - название файла, кол-во вершин и ребер, выводится в статусной строке
  • Программа позволяет настраивать цвет и толщину ребер, способ отображения (отсутствует, квадрат), цвет и размер вершин
  • Программа позволяет выбирать цвет фона
  • Настройки сохраняются между перезапусками программы

3dviewergtkc's People

Contributors

marg-s avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.