Giter Site home page Giter Site logo

powercoderjr / bladestick Goto Github PK

View Code? Open in Web Editor NEW
1.0 0.0 0.0 411 KB

Graphics system. Scene view, adding objects, transformation and parametrization of them.

C++ 100.00%
cli affine-transformation homogeneous-coordinates graphics camera brezenham z-buffer cohen-sutherland

bladestick's Introduction

Bladestick

Графическая система. Просмотр сцен, добавление объектов, их трансформация и параметризация.

Техническое задание

Разработать графическую систему для работы с параметризованными трехмерными объектами. При разработке нельзя использовать стандартные графические библиотеки. При выборе объекта моделирования необходимо предусмотреть наличие у объекта тел вращения и количественных параметров.

Требования:

  • наличие графической базы данных: возможность сохранения сцены с объектами в файле;
    • читабельность базы данных: файл сцены должен содержать данные модели в текстовом виде;
    • возможность работы с несколькими объектами: обеспечить добавление на экран допустимого количества объектов, а также работу со всеми объектами (перемещение, панорамирование) и одним выбранным объектом;
  • обеспечить редактирование и параметризацию объектов: возможность изменения параметров любого объекта, а также его масштабирование, перенос, поворот и удаление;
  • обеспечить центральное и параллельное проецирование: возможность переключения с одного вида проецирования на другой;
  • задание всех параметров аппарата проецирования: обеспечить наличие “камеры”, задаваемой необходимыми параметрами (как минимум – точка зрения и точка цели), также возможность её перемещения вокруг объекта и поворота вокруг своей оси;
  • удаление невидимых частей объектов: обеспечить визуализацию объекта без его невидимых частей при помощи алгоритма удаления невидимых линий;
  • разработать интуитивно понятный пользовательский интерфейс: программный продукт должен обеспечить пользователю максимально понятную и простую работу в редакторе за счёт оформления интерфейса, контекстных подсказок, горячих клавиш и предупреждений;
  • при разработке графического редактора не использовать стандартные графические библиотеки. (Open GL, Direct X и т.п.)

Объект моделирования

Объект, который предстоит создавать с учётом входных параметров и отрисовывать на экране — оружие одного из существ известной игры Heroes of Might and Magic V (секира?).
Дьявол с оружием в руках
Секира

Параметры объекта

  • длина рукояти;
  • внутренний радиус лезвия;
  • внешний радиус лезвия;
  • толщина лезвия;
  • длина первичных шипов;
  • длина вторичных шипов;
  • мера угла первичных шипов;
  • мера угла вторичных шипов;
  • количество вторичных шипов;
  • количество колец на конце рукояти.

Скриншоты

Три объекта в ряд, центральное проецирование

Три объекта в ряд, центральное проецирование

Два объекта с разными параметрами

Два объекта с разными параметрами

Проволочный рендер

Проволочный рендер

Пульты управления объектами, камерой и рендером

Пульты управления объектами, камерой и рендером

bladestick's People

Contributors

powercoderjr avatar

Stargazers

 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.