hierarchy
hierarchy copied to clipboard
紧凑树计算位置出错
如下图所示,在第 3 列中绿色卡片与白色卡片并未相交, 但由于第 5 列太宽了,绿色卡片就与白色卡片间出现了间隙。
我 fork 了你的代码,demo 中是造好的数据,你可以下载下来快速查看。链接点我
希望得到您的帮助,谢谢!

我对这个项目也非常感兴趣,如果有解决方案的话可以让我来修改并提 PR
在紧凑树布局算法中,separate 方法中对于dist 的处理中,只处理了 dist 大于 0 的情况(就是节点有重合的时候,需要将节点的偏移)但是没有处理 dist 小于 0 的情况(节点未重合的情况),因此会出现子节点将父节点的间距撑开的情况。如果需要解决这个问题可以将下面代码中的 if 判断去除,在所有情况下都处理一下节点位置,即可以解决这个问题。 https://github.com/antvis/hierarchy/blob/0e9e4ddbe61342a540426fccd926153fe220fb32/src/layout/non-layered-tidy.js#L134-L137
// if (dist > 0) {
mscl += dist;
moveSubtree(t, i, ih.index, dist);
//}
如果为了确保兼容性,是否可以增加一个配置来启用这个类型的“紧凑”布局?