Существует ли хорошая библиотека расположения графика, вызываемая от C++?

(Направленные) графики представляют конечные автоматы. Вплоть до сих пор моя тестовая программа выписывала точечные файлы для тестирования. Это довольно хорошо оба для регрессионного тестирования (сохраните проверенные выходные файлы в подверсии, спросите это, если было изменение), и для визуализации. Однако существуют некоторые проблемы...

В основном я хочу что-то вызываемое от C++ и который планирует расположение мои состояния и переходы, но оставляет рисунок мне - что-то, что позволит мне тянуть вещи однако, я хочу и привлекаю GUI (wxWidgets) окна.

Я также хочу лицензию, которая позволит коммерческое использование - мне не нужно это в настоящее время, и я могу выпустить как открытый исходный код, но я не хочу ограничивать свои опции ATM.

Проблемы с GraphViz (1) предупреждения о создании из источника в Windows, (2) все ненужные зависимости для рендеринга и парсинга и (3) (предполагаемое) отсутствие зарегистрированного API конкретно и просто для расположения.

В основном я хочу смочь указать свои состояния (с размерами ограничительного прямоугольника) и переходы, и считать положения для состояний и waypoints для каждого перехода, затем потянуть на основе тех координат сам. Я действительно не выяснил, как аннотации на переходы должны быть обработаны, но должно быть некоторое условие для определения размеров ограничительной рамки для тех, соединение их с переходами и положениями чтения вслух.

Кто-либо знает о библиотеке, которая может обработать те требования?

Я не обязательно против реализации чего-то для меня, но в этом случае я избежал бы его, если это возможно.

15
задан MSalters 30 September 2013 в 18:21
поделиться

4 ответа

Хотя ответы до сих пор стоили положительного голоса, я не могу принять ни один из них. Хотя я все еще искал.

Я нашел AGLO .Код - GPL v1, но есть документы, в которых описываются алгоритмы, поэтому при необходимости его будет достаточно легко реализовать с нуля.

Также есть статья Ганснера, Куцофиоса, Норта и Во - «Техника рисования ориентированных графов», доступная по адресу здесь, на сайте Graphviz .

Я также внимательно изучал лицензированный BSD (но Java) JGraph .

Так или иначе, похоже, что я мог бы заново реализовать колесо, если не изобретать его заново.

0
ответ дан 1 December 2019 в 05:19
поделиться

Ранее в этом году я имел дело с похожей проблемой. Однако одним из важных входных параметров для принятия решения является ожидаемое количество узлов.

Я решил использовать браузер в качестве графического интерфейса и поэтому искал хорошие библиотеки Javascript, одна из которых, на мой взгляд, была wireit , она очень хорошо подходит для технических макетов (а также редактирования с помощью перетаскивания и верстка "на лету"). Вы можете легко подключить это к своему c ++, запустив небольшой веб-сервер в потоке (вам в любом случае понадобится какая-то штука с петлей событий / потоков для графического интерфейса).

Ну, только мои 2 цента.

1
ответ дан 1 December 2019 в 05:19
поделиться

Хм, GDToolkit (или GDT) выглядит нормально: многие изображения в учебнике выглядят довольно красиво, и не похоже, что он ужасно сложен в использовании.

Edit: But checking the license, it looks like it's commercial software :-(. Упс!

2
ответ дан 1 December 2019 в 05:19
поделиться

OGDF находится под GPL.

Pigale также находится под лицензией GPL.

GoVisual - коммерческое программное обеспечение, но, похоже, оно начинается с 1800 долларов на одного разработчика.

2
ответ дан 1 December 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: