какую из графических схем рисования Java с открытым исходным кодом использовать для сетевой диаграммы со следующими требованиями? График будет содержать менее 1000 узлов.
1) имеет параллельные ребра
2) направленные и неориентированные ребра внутри одного графа
3) узлы, представленные изображениями
4) взаимодействие пользователя с узлами и ребрами
5) динамическое добавление/удаление узлов и ребер
6) множественная маркировка на узлах и ребрах, различные уровни маркировки могут быть отключены/включены пользователями. (например, рисование слоев и выключение/на слой)
7) различные алгоритмы компоновки для отображения звездных, кольцевых, топографических топологий
Я оценил JUNG и Prefuse. Это то, что я нашел для каждого из моих требований.
1) Prefuse не может отображать параллельные края, в то время как JUNG поддерживает его. Можно ли обработать код предварительной обработки для отображения параллельных ребер? Так как это связано с основными изменениями уровня данных, я считаю, что это будет сложнее, если изменится обычный настраиваемый рендеринг.
2) Я не нашел ссылки на комбинированный график (как направленный, так и неориентированный) как в prefuse, так и в JUNG. Кто-нибудь знает иначе?
3) Это кажется легким как с Prefuse, так и с JUNG
4) Опять же, как prefuse, так и JUNG обеспечивают поддержку взаимодействия с пользователем.
5) Оба prefuse и JUNG поддерживают его. Как выполняется каждая структура при перерисовке графика? Я видел в другом сообщении, что префикс не работает хорошо для динамических обновлений ( Prefuse Toolkit: динамическое добавление узлов и ребер)
6) Это сводится к изменению графика и его перерисовке. Таким образом, вопрос становится таким же, как 5)
7) И JUNG, и prefuse имеют несколько алгоритмов компоновки. Но когда я попытался отобразить один и тот же набор данных, используя FruchtermanReingoldLayout в JUNG и Prefuse, я получаю разные дисплеи. Любые идеи почему? Как бы то ни было, алгоритмы компоновки в Prefuse выглядят лучше, чем в JUNG (рендеринг также лучше, я думаю), хотя большинство алгоритмов компоновки в Prefuse основаны на реализации JUNG. Планы предварительной обработки, такие как ForceDirectedLayout/FruchtermanReingoldLayout и CircleLayout, непосредственно отображаются в топологии звезд, кругов, сеток.
Помимо этих требований, prefuse имеет хорошую поддержку выражений и языка запросов, но похоже, что он не активно развивается в отличие от JUNG. какой из них лучше визуализировать? Любые предложения, по которым будет целесообразным, и как преодолеть недостатки?
Какие-нибудь другие рамки, которые я могу использовать?