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

StackOverflow https://stackoverflow.com/questions/2534502

Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение 4

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

Одна вещь, которую я нашел, это АГЛО.Код находится под лицензией GPL v1, но существуют документы, описывающие алгоритмы, поэтому при необходимости его будет достаточно легко реализовать с нуля.

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

Я также внимательно присматривался к лицензиям BSD (но Java). Jграф.

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

Другие советы

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

Редактировать:Но проверив лицензию, похоже, что это коммерческое ПО :-(.Упс!

ОГДФ находится под лицензией GPL.

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

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

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

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

Ну просто мои 2 цента.

Вот хорошая коллекция Graph Libs с функциями сравнения и поиска:
http://gvsr.polytech.univ-nantes.fr/GVSR/task?action=browse#

Возможно, вы найдете библиотеку, которая подойдет вам.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top