G6
G6 copied to clipboard
使用dagre布局 设置节点水平间距时因自定义节点大小不同,导致计算错误
问题描述
在dagre布局中 rankdir是TB 使用的自定义节点 在nodesepFunc方法中根据节点宽度来定义节点间距 这个间距是当前间距的边距离相邻节点的距离吗?还是其他的? 现在的情况就是 层级相同的节点 如果宽度相同 间距就相同 如果两个节点宽度不同 间距就会出现问题 给固定的间距又会出现覆盖的情况,这是什么原因? 是理解错了吗?
重现链接
无
重现步骤
1.使用dagre布局 2.创建自定义节点 节点宽度随机 3.通过nodesepFunc设置水平节点间距
预期行为
无论节点宽度多少 水平间距相同
平台
- 操作系统: Windows
- 网页浏览器: [Google Chrome, Safari, Firefox]
- G6 版本: [4.5.1 ... ]
屏幕截图或视频(可选)
No response
补充说明(可选)
No response
可将节点大小反映在数据的 size 字段中,布局中将会考虑 size 来分布节点
{
id: `${i}`,
shape: 'circle',
width: 32,
height: 32,
label: i,
size: {
width: 32,
height: 32
},
attrs: {
body: {
fill: '#5F95FF',
stroke: 'transparent'
},
label: {
fill: '#ffffff'
}
}
}
计算位置的时候不是根据node的width和height,而是根据node.size里的width和height