Arbor.JS中的单节点错误

时间:2011-10-07 12:56:53

标签: javascript arbor.js

当使用单个节点创建一个简单的Arbor JS图时,该节点会在整个地方抖动,并且不能再添加其他节点。

另一位用户也在这里报告了这个问题:

https://github.com/samizdatco/arbor/issues/12

感谢您对修复/解决方法的帮助

5 个答案:

答案 0 :(得分:2)

这不是一个真正的修复,但我计算节点的数量,如果小于我,我将摩擦设置为1.0

if (nodeCount == 1) {
   //Stop single nodes bouncing all over the place
   sys.parameters({ friction: '1.0' });
}

答案 1 :(得分:2)

使用d3.js库而不是Arbor解决了我的问题: - )

答案 2 :(得分:2)

我们为此使用解决方案解决方案。它可能更像是一个黑客而不是一个完整的解决方案,但它很容易实现,并且适用于大多数情况。

我们所做的是每次添加或移除粒子时,我们都会确定系统中的粒子数。如果此计数等于1,我们在系统中添加一个新粒子,其颜色设置为画布背景颜色。由于节点的颜色与其背景相同,因此不可见。

因此,图表中没有任何一个节点。每当由于添加或删除而发生这种情况时,我们都会添加此隐藏的平衡节点。 您可以查看我们的网站,查看以上内容的实例:http://www.graphthinker.com。在添加节点时,您可能会看到图表即使只有一个(可见)节点也会继续响应。

当不再需要它时,可以删除此隐藏的平衡节点,例如添加另一个节点时,或者删除唯一可见节点时。

答案 3 :(得分:1)

另一种选择是用this替换physics.js文件。它有几个修复来弥补有一个节点的问题(包括添加第二个节点的问题)。

答案 4 :(得分:0)

试试这个



if (nodeCount == 1) {
            sys.parameters({ repulsion: 10, gravity: false, dt: 0.035 })
        }
        else if (nodeCount > 1 && nodeCount < 30) {
            sys.parameters({ repulsion: 1000, gravity: false, dt: 0.35 })
        }
        else {
            sys.parameters({ friction: .1, stiffness: 0.1, repulsion: 1, gravity: false, dt: 0.035 })
        }
&#13;
&#13;
&#13;