繁体   English   中英

Arbor.JS中的单节点错误

[英]Single node bug in Arbor.JS

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

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

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

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

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

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

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

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

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

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

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

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

试试这个

 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 }) } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM