Я использовал dagre для рисования ориентированных графов, но я пытаюсь понять, как svg, d3, dagre и graphlib зависят друг от друга? В основном, где один останавливается, а другой начинается.Как svg, d3, dagre, dagre-d3 и graphlib зависят друг от друга?
Я попытаюсь указать, что я мог бы собрать с моим ограниченным пониманием.
SVG: (это векторный формат изображения XML на основе, но в основном это) является тег HTML с помощью которого вы можете нарисовать круг, эллипс, прямоугольник и т.д., и затем использовать г элемент группы двух или больше форм и применяемых преобразований и т. д.
d3: d3 - это библиотека javascript, которая в основном позволяет комбинировать данные с svg. Таким образом, вместо написания svg-тегов каждый раз вы в основном используете программирование, петли, данные и т. Д. И создаете код svg.
Сейчас подходит к dagre, dagre-d3 и graphlib, где у меня есть проблема при условии, что все, что я сказал выше, имеет смысл :)
dagre, dagre-d3: Это то, что dagre страница говорит «Dagre библиотека JavaScript, что позволяет легко раскладывать ориентированные графы на стороне клиента. библиотека dagre-d3 действует на передний конец dagre, обеспечивая фактическую визуализацию с помощью D3.»
Может кто-нибудь, пожалуйста, объясните мне это? Могу ли я использовать функции d3 внутри dagre, dagre-d3? Хм .. Я уже смущен, Не могли бы вы объяснить на примере, как все это сосуществуют? Это code snippet то, что заставило меня задуматься:
var oldDrawNodes = renderer.drawNodes(); renderer.drawNodes(function(graph, root) { var svgNodes = oldDrawNodes(graph, root); svgNodes.each(function(u) { d3.select(this).classed(graph.node(u).nodeclass, true); }); return svgNodes; });
Здесь drawNodes является функцией от dagre-d3, но она будучи более охваченном, и мы проходим функцию d3 (d3.select (это) .classed) внутри. Хм ... как это происходит? Я думал, что d3.select можно сделать только для элементов html? Что это такое?
graphlib: Это страница graphlib, в которой говорится, что она предоставляет структуры данных для мультиграфов. Но я имею в виду, эти библиотеки построены для d3 или для dagre-d3?
Я знаю, что я сбитый с толку, но вы его получите! Если бы кто-нибудь мог объяснить мне пример того, как они связаны и какие функции могут быть использованы внутри того, что я смогу подобрать.
Спасибо.