LINUX.ORG.RU

Визуализация графов средних размеров

 , ,


1

6

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

  1. чтобы можно было масштабировать картинку без проблем с очень широким диапазоном, ибо вершин будет несколько сотен тысяч;

  2. чтобы можно было делать надписи внутри вершин графа;

  3. Чтобы можно было задавать разные цвета конкретным вершинам и ребрам (в зависимости от типа, заданного в структуре вершин/ребер);

  4. чтобы можно было задавать размер точек вершин, хотя бы относительно (типа, вершина типа «A» в два раза больше вершины типа «Б»);

  5. чтобы можно было задавать размер и цвет шрифта для веса/метки ребер;

  6. чтобы регенерация картинки была относительно быстрая при изменении содержимого графа (в идеале в реалтайм, типа я смотрю на граф, моя прога обнаруживает изменение содержимого графа, запускает визуализацию, и через, скажем 50мс все перерисовывается;

  7. чтобы можно было маппить от оконных координат относительно некоей референсной системы координат в оригинальном масштабе (100%) к соотв. структуре данных вершины или ребра.

  8. не слишком тупая автоматическая компоновка вершин (чтобы не было, как иногда в graphviz - а ля растянутая сосиска вместо компактненького пятна из вершин;

Может ли такое gnuplot?

Все, что пробовал использовать - какие-то немасштабируемые малофункциональные поделки типа graphviz.

Предпочтительно, конечно бесплатный опенсорс. Но если есть коммерческие state-of-the-art решения, то можно и такие рассмотреть.

★★★★★

Не гони на графиз, он для другого.
Звучит (от меня особенно) странно, но под твои задачи подходит какая-нибудь Js либа для графов: браузеры настолько оптимизированы для рисования вектора, что всё другое будет медленнее и сложнее в реализации

Shadow ★★★★★ ()

VTK, не?

https://vtk.org/

Либо на opengl напиши. Сложность в позиционировании вершин. Есть много разных работ на эту тему.

Но тут сложно:

вершин будет несколько сотен тысяч чтобы можно было делать надписи внутри вершин графа

Производительность модет пострадать если не аккуратно делать (у меня были текстурированные прямоуголтники и надписи в текстурах и mipmappingом). Думаю гуры могли бы намного лучше сделать.

invy ★★★★★ ()
Последнее исправление: invy (всего исправлений: 2)