Направленный ациклический граф в веб-интерфейсе - PullRequest
1 голос
/ 25 ноября 2011

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

1.Визуализация DAG

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

Мне не нужно, чтобы все узлы появлялись на экране с самого начала.Например, пользователь может развернуть узел, дважды щелкнув или увеличив его.

Я открыт для всех предложений и советов.

2.Технология

Существует несколько функций, которые должна иметь реализация:

  • drag & drop
  • zoom
  • события при взаимодействии мыши сузлы

С моей точки зрения, у меня есть 2 варианта (Flash не может быть и речи):

a.HTML5 Canvas

Недостатки: нет векторов, в основном просто изображение;нет неявных событий мыши на узлах;

Преимущества: скорость;популярность;анимации

b.SVG

Недостатки: низкая скорость при большом количестве узлов;

Преимущества: векторная графика;элементы находятся в DOM, поэтому вы можете иметь события и т. д .;

c.Сочетание HTML5 Canvas & SVG

1 Ответ

0 голосов
/ 25 ноября 2011

Предполагая, что вы хотите динамически обновлять свой график, вы можете использовать python на сервере с модулем pydot GraphViz.

Я не пробовал это, но это стоит посмотреть.

...