Tôi đã sử dụng dagre để vẽ đồ thị có hướng trực tiếp nhưng tôi đang cố gắng hiểu cách svg, d3, dagre và graphlib phụ thuộc lẫn nhau như thế nào? Về cơ bản, nơi dừng lại và người kia bắt đầu.svg, d3, dagre, dagre-d3 và graphlib phụ thuộc vào nhau như thế nào?
Tôi sẽ cố gắng và chỉ ra những gì tôi có thể thu thập với hiểu biết hạn chế của mình.
svg: (là một định dạng hình ảnh vector dựa trên XML, nhưng về cơ bản nó) là một thẻ html sử dụng mà bạn có thể vẽ hình tròn, hình elip, hình chữ nhật vv và sau đó sử dụng các yếu tố g vào nhóm hai hoặc nhiều hình dạng hơn và áp dụng biến đổi, v.v.
d3: d3 là thư viện javascript về cơ bản cho phép bạn kết hợp dữ liệu với svg. Vì vậy, thay vì viết thẻ svg mọi lúc, bạn về cơ bản sử dụng lập trình, vòng lặp, dữ liệu, vv và tạo mã svg.
Bây giờ đến dagre, dagre-d3 và graphlib là nơi tôi có một vấn đề giả định rằng bất cứ điều gì tôi đã nói ở trên làm cho bất kỳ ý nghĩa :)
dagre, dagre-d3: Đây là những gì trang dagre nói "Dagre là một thư viện JavaScript giúp dễ dàng bố cục các đồ thị được hướng dẫn ở phía máy khách. Thư viện dagre-d3 hoạt động kết thúc với dagre, cung cấp hiển thị thực tế bằng D3."
Có ai đó giải thích điều này cho tôi biết không? Vì vậy, tôi có thể sử dụng các chức năng d3 bên trong dagre, dagre-d3? Hmm..Tôi đã nhầm lẫn rồi, Bạn có thể giải thích với một ví dụ về cách tất cả những điều này cùng tồn tại không? này code snippet là những gì tôi đã suy nghĩ:
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; });
Ở đây, drawNodes là một hàm từ dagre-d3 nhưng nó đang được quá ridden và chúng tôi đang đi qua một chức năng d3 (d3.select (this) .classed) bên trong nó. Hừm ... chuyện đó xảy ra như thế nào? Tôi nghĩ rằng d3.select chỉ có thể được thực hiện cho các phần tử html? 'Cái này' ở đây là gì?
graphlib: Đây là trang graphlib và nó nói rằng nó cung cấp cấu trúc dữ liệu cho nhiều chữ. Nhưng ý tôi là, những thư viện này được xây dựng cho d3 hay dagre-d3?
Tôi biết tôi có vẻ bối rối nhưng bạn hiểu rồi! Nếu ai đó có thể giải thích cho tôi với một ví dụ về cách chúng có liên quan và những chức năng nào có thể được sử dụng bên trong những gì, tôi sẽ có thể nhận được.
Cảm ơn.