当使用单个节点创建一个简单的Arbor JS图时,该节点会在整个地方抖动,并且不能再添加其他节点。
另一位用户也在这里报告了这个问题:
https://github.com/samizdatco/arbor/issues/12
感谢您对修复/解决方法的帮助
答案 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;