/StringCircleArt

Program for String Circle Art

Primary LanguageC++

String Circle Art

by Tsynikin Sergey (Цыникин Сергей Анатольевич)

Данный проект и используемые алгоритмы разработаны с нуля автором программы. Любые потенциально возможные сходства и совпадения с имеющимися аналогами считать случайными. Основной целью проекта являлись PoC (Proof of Concept) и создание работоспособной программы для создания арт-объектов хорошего качества.

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

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

Данная программа является вспомогательным инструментом для создания арт-объектов (картин), в которых заложен принцип формирования изображения одной непрерывной нитью, которая соединяет фиксированные точки, расположенные по окружности. Программа позволяет переводить фотографии (и иные изображения) в особый формат, говорящий в какой последовательности должны быть соединены точки на окружности. По сути, это своего рода векторный формат графики для "принтера", в роли которого может выступать человек.

Особенностью программы является учет многих параметров, построения изображения не только непрерывной нитью, но нитью соединяющие произвольные точки; а также предварительная фильтрация изображения (для получения более качественного результата) и возможность отображения будущей картины в 3d (можно вывести изображение на большой монитор/проектор, чтобы увидеть будущее изображение в реальную величину и под нужным углом).

Пример моделированя

Окно программы

Screenshot

Исходный файл

Src_Image

Результат

Model

Пример готового арт-объекта

Для создания данного демонстрационного арт-объекта был выбран обруч диаметром примерно 41 см, в который было зажато 256 гвоздей. Для большей надежности пространство между гвоздями было залито супер-клеем. Изображение рисовалось одной непрерывной нитью длинной около 2 км, сформировав около 6 тыс. хорд.

Screenshot Real_Object

Документация

Основная документация в разработке…

Фреймворки и библиотеки

Проект разработан в среде Embarcadero C++Builder Community Edition, стандарт языка C++'17.