Javascript Arbor.JS中的单节点错误

Javascript Arbor.JS中的单节点错误,javascript,arbor.js,Javascript,Arbor.js,当用一个节点创建一个平凡的Arbor JS图时,节点会到处抖动,不能再添加其他节点 另一个用户在此也报告了此问题: 如果您能提供修复/解决方案,我将不胜感激这并不是一个真正的修复,但我会计算节点数,如果小于on,我会将摩擦力设置为1.0 if (nodeCount == 1) { //Stop single nodes bouncing all over the place sys.parameters({ friction: '1.0' }); } 使用d3.js库而不是Arb

当用一个节点创建一个平凡的Arbor JS图时,节点会到处抖动,不能再添加其他节点

另一个用户在此也报告了此问题:


如果您能提供修复/解决方案,我将不胜感激

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

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

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

另一个选择是用一个文件替换
physics.js
文件。它有多个修复程序来补偿使用单个节点时出现的问题(包括添加第二个节点时出现的问题)。

试试这个

if(nodeCount==1){
系统参数({排斥力:10,重力:假,dt:0.035})
}
否则如果(nodeCount>1&&nodeCount<30){
系统参数({排斥力:1000,重力:假,dt:0.35})
}
否则{
系统参数({摩擦力:1,刚度:0.1,排斥力:1,重力:假,dt:0.035})

}
我们为此使用了一种变通解决方案。与其说它是一个完整的解决方案,不如说它更像是一种黑客行为,但它很容易实现,并且在大多数情况下都能正常工作

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

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


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

因此,我已移动到d3.js库,这是一个极好的替代方案。当有更多节点时,这个问题似乎也出现在其他情况下。例如,我有大约30个节点连接到一个中心节点,该中心节点也开始反弹,您可以重新定义重画吗?就像你和阿伯一样?我需要能够为我的节点使用DOM元素,而不是渲染的形状=\如何准确计算节点数?我一直在尝试计算它们,但我不知道如何在arbor.js文件之外进行计算,因为我似乎无法访问节点数组。