dagre

Бесплатно
Открытый исходный код

Сайт: dagrejs.github.io

dagre — это открытая JavaScript-библиотека для автоматического расположения ориентированных ациклических графов (DAG) на плоскости. Библиотека разработана для вычисления координат узлов и трассировки ребер с целью получения читаемых диаграмм, часто используемых для визуализации схем, деревьев зависимостей и потоков данных. dagre реализует алгоритмы, ориентированные на минимизацию пересечений ребер, выравнивание уровней и аккуратное распределение узлов по слоям.

Проект возник как набор инструментов для веб-разработчиков, которым требуется автоматическое вычисление layout перед отрисовкой с помощью SVG или Canvas. dagre обычно применяется вместе с визуализационными библиотеками и фреймворками для рендеринга графов на клиенте. В источниках описывается реализация ключевых этапов многоступенчатого алгоритма раскладки: назначение уровней (rank), упорядочение узлов в рангах для уменьшения пересечений и вычисление окончательных координат с учётом размера узлов и отступов.

  • Поддержка ориентированных ацикличных графов (DAG) и структур, близких к деревьям.
  • Многоступенчатый алгоритм раскладки: ранжирование узлов, упорядочивание для уменьшения пересечений, вычисление координат.
  • Возможность задавать размеры узлов и горизонтальные/вертикальные отступы для управления плотностью расположения.
  • Генерация информации о траекториях ребер, позволяющая затем отрисовать изогнутые или полилинейные соединения.
  • API для программного управления: добавление узлов и рёбер, запуск расчёта layout и чтение итоговых координат.
  • Интеграция с визуальными библиотеками: результаты layout легко использовать с SVG, Canvas и DOM для клиентской отрисовки.
  • Настраиваемые параметры алгоритма, позволяющие адаптировать поведение к требованиям читаемости и эстетики диаграмм.
  • Оптимизация для сред с ограниченными ресурсами — расчёт выполняется на клиентской стороне в JavaScript.
Подробнее