Мне нужно отобразить направленный ациклический график на веб-странице.Я не ищу готовую библиотеку или решение.Я ищу предложения, рекомендации или толчок в правильном направлении.
1.Визуализация DAG
Я не уверен, как будут представлены узлы и отношения.Возможными решениями могут быть древовидные карты, старый добрый узел и линия или их комбинация.У меня нет проблем, если один узел появляется на экране более одного раза.
Мне не нужно, чтобы все узлы появлялись на экране с самого начала.Например, пользователь может развернуть узел, дважды щелкнув или увеличив его.
Я открыт для всех предложений и советов.
2.Технология
Существует несколько функций, которые должна иметь реализация:
- drag & drop
- zoom
- события при взаимодействии мыши сузлы
С моей точки зрения, у меня есть 2 варианта (Flash не может быть и речи):
a.HTML5 Canvas
Недостатки: нет векторов, в основном просто изображение;нет неявных событий мыши на узлах;
Преимущества: скорость;популярность;анимации
b.SVG
Недостатки: низкая скорость при большом количестве узлов;
Преимущества: векторная графика;элементы находятся в DOM, поэтому вы можете иметь события и т. д .;
c.Сочетание HTML5 Canvas & SVG