Добавить новый widgets в библиотеку ImGui

5 000 руб. за проект
09 августа 2019, 16:14 • 4 отклика • 30 просмотров
Описание задачи
Библиотека ImGui содержит виджет ImGui::PlotLines для рисования графика с одной линией. Необходимо добавить новый виджет ImGui::PlotCandles , который бы смог отображать так называемые японские свечи и несколько линий с настраиваемым цветом. Пример библиотеки с новыми виджетами тут.

Более подробные требования:


  • Виджет должен рисовать сетку с настраиваемым шагом. Для горизонтальных полос отображать справа значение цен. Если передать шаг равный 0, сетку не рисуем. Также должна быть возможность настроить цвет сетки и цвет значений цен
  • Виджет должен уметь отображать цену закрытия последней свечи, если установлен флаг для отображения цены. Цвет должен быть настраиваемый как для текста, так и для области, в которой он рисуется.
  • Для рисования японских свечей виджет должен принимать массив структур или класса candle с данными для отрисовки. Данные содержат следующие поля типа double: open, low, hight, close – цены открытия, наименьшая цена, наивысшая цена и цена закрытия свечи. А также переменную timestamp типа uint64 для хранения метки времени. Если хотя бы одна из переменных равна 0, то данная свеча не отображается на экране. Также структура должна содержать массив line типа double переменной длины для отображения линий. Каждый элемент этого массива - точка линии по оси Y. Если переменная равна 0, данную линию в заданном месте не рисуем, т.е. происходит обрыв линий. Этот массив линий в каждой структуре японских свечей позволит рисовать на графике пунктирные линии или произвольное количество линий, делать разрыв произвольной линии в любом месте. Линии должны рисоваться поверх японских свечей. Для японской свечи и каждой линии каждая структура должна содержать настройку цвета. Вдобавок добавить переменную типа bool для отрисовки вертикальной линии, также с настройкой для нее цвета. Если переменная не была установлена, вертикальную линию не рисуем. Вертикальная линия рисуется поверх всех остальных линий и японских свечей.
  • Добавить настройку цвета фона графика.
  • Добавить настройку отступа графика справа в пикселях.
  • Добавить возможность выводить текст поверх графика с настраиваемым цветом и размером и положением внутри графика
  • Добавить возможность отображать информацию о японской свече при поднесении к ней мышки

В дальнейшей работе ImGui будет использоваться в составе библиотеки SFML которую можно подключить через проект imgui-sfml Возможно для разработки и проверки виджета будет удобно использовать именно данную связку.

Примеры графиков в прикрепленных файлах (как примерно может выглядеть график виджета)

Полезные ссылки
Пример библиотеки с новыми виджетами для ImGui:
https://github.com/leiradel/ImGuiAl
Библиотека ImGui:
https://github.com/ocornut/imgui
Файлы