2016-03-03 87 views
0

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

当我使用这些数据,有时图呈现没有问题,但主要是它打破。

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

回答

0

在你提供的链接,第三个例子中有这样的:

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

这显然使得它更加紧凑。因为,你要传播出来的图形,你应该乘这样的:

g.repulsion = g.repulsion * 10; 

尝试不同的号码,看它是否工作。将来,我会建议使用更好的文档,如D3.js。

+0

我试过使用不同的排斥值,但没有效果。现有的一些库会计算强制定向和返回数据吗?或者仅仅是指挥计算力量的例子? – 1000Bugy

+0

@ 1000Bugy如果你问D3.js是否可以计算定向力矢量,我不确定。但是,您可以检查D3文档。 – 1729