Ho usato dagre per disegnare grafici diretti ma sto cercando di capire come svg, d3, dagre e graphlib siano dipendenti l'uno dall'altro? Fondamentalmente, dove uno si ferma e l'altro inizia.Come sono svg, d3, dagre, dagre-d3 e graphlib dipendenti l'uno dall'altra?
Proverò a sottolineare quello che potrei raccogliere con la mia comprensione limitata.
svg: (è un formato grafico vettoriale basato su XML, ma in fondo) è un tag HTML con il quale è possibile disegnare cerchi, ellissi, rettangoli, ecc e quindi utilizzare l'elemento g di raggruppare due o più forme e applica trasformazioni, ecc.
d3: d3 è una libreria javascript che in pratica consente di combinare i dati con svg. Quindi, invece di scrivere tag svg ogni volta, in pratica usi la programmazione, i loop, i dati ecc. E crei il codice svg.
Ora venendo al Dagre, Dagre-D3 e graphlib è dove ho un problema supponendo che tutto ciò che ho detto sopra ha un senso :)
Dagre, Dagre-d3: questo è ciò che il Dagre pagina dice "Dagre è una libreria JavaScript che rende facile lay out grafi orientati sul lato client. la biblioteca Dagre-D3 agisce un front-end per Dagre, fornendo il rendering reale utilizzando D3."
Qualcuno può spiegarmelo per favore? Quindi posso usare le funzioni d3 all'interno di dagre, dagre-d3? Hmm ... Sono già confuso, puoi spiegare con un esempio come tutti questi coesistono? Questo code snippet è ciò che mi ha fatto pensare:
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; });
Qui, drawNodes è una funzione da Dagre-D3 ma viene sovrascritta e stiamo passando una funzione d3 (d3.select (questo) .classed) al suo interno. Hmm ... come sta succedendo? Ho pensato che d3.select potesse essere fatto solo per gli elementi html? Cosa c'è 'questo' qui?
graphlib: Questa è la pagina graphlib e dice che fornisce strutture dati per le multigrafi. Ma voglio dire, queste librerie sono state create per d3 o per dagre-d3?
So che suono confuso ma capisci! Se qualcuno mi può spiegare con un esempio su come questi sono correlati e quali funzioni potrebbero essere utilizzate all'interno di cosa, sarò in grado di raccogliere.
Grazie.