【问题标题】:Using snap svg for manipulating/dragging/hide/show nodes in SVG diagrams使用 snap svg 在 SVG 图中操作/拖动/隐藏/显示节点
【发布时间】:2014-05-01 14:32:33
【问题描述】:

我有一个由 GraphViz 工具生成的 SVG 网络图(节点和边)。我想让图表在某种意义上具有交互性,它应该是可拖动的,单击一个节点时,其他一些节点将被隐藏.ETC。有人可以建议 snapSVG 就足够了吗?我不能在 SVG 图表中添加任何东西,这是我的限制。我们如何使现有的 svg 图强制定向?任何帮助,起点,小提琴都会有所帮助。我在 d3.js 上手了,d3.js 可以实现吗?

【问题讨论】:

    标签: svg d3.js snap.svg


    【解决方案1】:

    这应该是可能的,也许要知道 Snap.svg 与旧浏览器不太兼容(在这种情况下,您可以查看 Snaps 的哥哥 Raphael,d3 也非常成熟)。它们都具备所有基础知识、处理程序、动画等。然而,尽管有可能,但工作量很大(所以可能要坚持你所知道的)。

    您可能想了解是要自动创建连接元素并自动移动,还是愿意手动移动端点。

    这也可能取决于您希望在拖动元素后发生什么。你想拯救他们吗?其中一些对于你如何处理它可能非常重要,也许比拖动更重要,因为大多数人都会支持这一点。

    【讨论】:

    • 我的 svg 图已经创建,我需要选择它们并提供所需的属性。我的想法是让 svg 成为 d3.js 制作的强制有向图。是否有任何通用方法可以使 SVG 强制定向。
    • 不确定通用方式,但我的直觉是坚持使用 d3,因为有一些内置的,以及更多直接参考的力示例,而不是 snap。
    • d3 具有特定的布局,例如强制定向,但是您需要从已经创建的数据到该设置进行一些转换。布局的力方向根据其动态算法改变元素的平移、方向等。预先创建的图表已经完全“锁定”了。
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2015-01-13
    • 2016-10-27
    • 1970-01-01
    相关资源
    最近更新 更多