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