antvis / G6

♾ A Graph Visualization Framework in JavaScript.
https://g6.antv.antgroup.com/
MIT License
11.07k stars 1.32k forks source link

dagre布局下的一些combo展示问题 #1747

Closed betty0417 closed 4 years ago

betty0417 commented 4 years ago

dagre 布局下,用了combo来对节点进行分组展示,遇到一些问题:

  1. 多个combo展示时存在重叠的情况;
  2. 连接点问题:无法和node一样设置连接点;
  3. combo之间间距无法设置,导致初次渲染出来的combo堆叠在一起。
  4. combo内部节点存在重叠现象,预期应该是根据设置的nodesep展示节点,不应该出现重叠的情况。 image

demo 见链接

Yanyan-Wang commented 4 years ago

问题 1:看到 demo 里是因为 dagre 布局的时候,同层级的节点不是根据是否属于同一个 Combo,分组4 里面的 node42 和 node41 不会因为它们属于同一个 combo 就被放得比较靠近。同层级的节点在图上放置的位置只与点边关系有关。可以通过增加“虚拟”边的方式,让同 combo 的节点尽可能靠近,例如我在 L181 加了两条“虚拟”边:https://riddle.alibaba-inc.com/riddles/66d0cf5d

问题 2: defaultCombo 中设置了 anchorPoints 其实已经生效了,可以看到链接到 combo 上的边都连接到了这两个 anzhorPoints 上

问题 3: combo 为空时会使用一个默认的位置,combo 不为空时其位置由内部节点位置决定

问题 4: 节点重叠与 combo 应该无关,因为 combo 信息是不参与布局的。你可以把 combo 都去掉看下节点之间是否有重叠。

Yanyan-Wang commented 4 years ago

demo 中另外有一个问题,Graph 的 nodeStyle 和 edgeStyle 配置已经废弃,defaultNode 和 defaultEdge 就可以配置。

PeterRao commented 5 months ago

问题 1:看到 demo 里是因为 dagre 布局的时候,同层级的节点不是根据是否属于同一个 Combo,分组4 里面的 node42 和 node41 不会因为它们属于同一个 combo 就被放得比较靠近。同层级的节点在图上放置的位置只与点边关系有关。可以通过增加“虚拟”边的方式,让同 combo 的节点尽可能靠近,例如我在 L181 加了两条“虚拟”边:https://riddle.alibaba-inc.com/riddles/66d0cf5d

问题 2: defaultCombo 中设置了 anchorPoints 其实已经生效了,可以看到链接到 combo 上的边都连接到了这两个 anzhorPoints 上

问题 3: combo 为空时会使用一个默认的位置,combo 不为空时其位置由内部节点位置决定

问题 4: 节点重叠与 combo 应该无关,因为 combo 信息是不参与布局的。你可以把 combo 都去掉看下节点之间是否有重叠。

链接访问不了了,还有其他地址码