强制定向布局

时间:2016-03-03 18:48:26

标签: javascript svg force-layout

当我使用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();

当我使用这些数据时,有时候图形渲染没有问题,但大部分时间都会中断。

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

1 个答案:

答案 0 :(得分:0)

在您提供的链接中,第三个示例包含:

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

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

g.repulsion = g.repulsion * 10;

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