【问题标题】:Force directed layout强制定向布局
【发布时间】:2016-03-03 18:48:25
【问题描述】:

当我使用THIS 算法计算图的强制定向布局时,其中 1 个节点是 10 条或更多边,计算失败。 我猜是因为计算出的位置太大了,它表示为“NaN”。

输入数据:

var g = new Graph("canvas", 960, 700 );
            g.createVertex("a");
            g.createVertex("a1");
            g.createVertex("a2");
            g.createVertex("a3");
            g.createVertex("a4");
            g.createVertex("a5");
            g.createVertex("a6");
            g.createVertex("a7");
            g.createVertex("a8");
            g.createVertex("a9");
            g.createVertex("a10");
            g.createVertex("a11");
            g.createVertex("a12");
            g.createVertex("a13");
            g.createVertex("a14");
            g.createVertex("a15");
            g.createVertex("a16");


            g.createEdge("a","a1");
            g.createEdge("a","a2");
            g.createEdge("a","a3");
            g.createEdge("a","a4");
            g.createEdge("a","a5");
            g.createEdge("a","a6");
            g.createEdge("a","a7");
            g.createEdge("a","a8");
            g.createEdge("a","a9");
            g.createEdge("a","a10");
            g.createEdge("a","a11");
            g.createEdge("a","a12");
            g.createEdge("a","a13");
            g.createEdge("a","a14");
            g.createEdge("a","a15");
            g.createEdge("a","a16");
            g.go();

当我使用这些数据时,有时图形渲染没有问题,但大多数情况下它会中断。

有人可以帮我解决它吗? 谢谢。

【问题讨论】:

    标签: javascript svg force-layout


    【解决方案1】:

    在您提供的链接中,第三个示例类似于:

    g.repulsion = g.repulsion / 8;
                g.spring_length = 1;
    

    这显然使它更紧凑。因为,你想展开图表,你应该像这样乘法:

    g.repulsion = g.repulsion * 10;
    

    尝试不同的数字,看看它是否有效。将来,我建议使用具有更好文档的东西,例如 D3.js。

    【讨论】:

    • 我尝试使用不同的值进行排斥,但没有效果。现有的一些库将计算力导向并返回数据?还是简单地计算定向力的工作示例?
    • @1000Bugy 如果您问 D3.js 是否可以计算定向力向量,我不确定。但是,您可以查看 D3 文档。
    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 2012-03-23
    • 2017-05-02
    • 2013-06-25
    • 2016-11-10
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多