Spring图算法w节点大小

Mar*_*ark 5 algorithm layout graph edges nodes

我需要做一些图形布局图,并已考虑使用像作为实施的春天布局算法这里讨论在这里

但是我的节点都有宽度和高度(是实体图).任何人都可以解释我如何将其纳入等式中吗?

ojd*_*jdo 0

Graph JavaScript 框架为起点,您可以执行以下操作。我假设该类Node已通过属性width和进行了扩展height。然后,在函数 中layoutRepulsive,必须更改计算节点距离的表达式以考虑这些大小:

var dx = Math.max(0, Math.abs(node2.layoutPosX - node1.layoutPosX) - 0.5*(node2.width+node1.width));
var dy = Math.max(0, Math.abs(node2.layoutPosY - node1.layoutPosY) - 0.5*(node2.height+node1.height));
Run Code Online (Sandbox Code Playgroud)

最大函数强制将 0 作为距离的最小可能值,即使它们的边界框重叠也是如此。