我想使用 cytoscape.js 显示计算机网络图,我意识到这不是一个典型的用例。这是子网(建模为复合节点)的集合,每个子网内有多个计算机工作站或服务器。子网连接到路由器、防火墙和其他网络基础设施,形成顶层图。
希望子网使用具有统一间距的网格布局,并且为了清晰起见,没有显示内部边缘,并且在图表的其余部分使用类似 CoSE 的东西来以必要的间距适当地布局子网。我要创建的模型视觉效果是:
关于我正在尝试做什么,或使用现有布局完成以下三个选项的任何建议?我见过的所有示例一次只使用一种布局算法。
选项 1:网格然后 CoSE
意图是保留网格位置,只让 CoSE 修改其他所有内容。我试过了,它给出了毫无意义的结果。这是有缺陷的,因为复合节点位置是从它的子节点位置派生的。
选项 2:CoSE 然后网格
我希望 CoSE 将孩子的定位比网格小得多,因此父母的 bb 更大/不同。当网格稍后在子网上运行时,它可能会导致移位和间隙/重叠或较差的视觉行/列纵横比。
选项 3:网格然后 CoSE 在多个图形上
这应该不会留下间隙或重叠,因为 CoSE 无法调整节点的大小。很贵,但我的图都很小,只需要发生一次。
其他选择肯定是可能的。创建结合这些功能的新布局是可能的,但目前不在范围内。也许未来的 cytoscape.js 增强可能是明确支持在单个图上协作的多个布局算法,每个算法负责图的一部分。
要记住的事情:
(1) 复合布局必须在儿童和家长的操作下才能正常工作。
(2) 任何布局都只能对复合父级进行操作。父母的立场是由孩子暗示的。
(3) 每个图表都有不同的布局需求。最终,归结为尝试不同的策略和选择等。
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |