流程图布局在项目中的实践

不论任何对流程图的布局的美化效果,在研发的角度来说都是对流程上的点、线坐标进行调整,但是最大的问题可能是也不知道基于什么规则去调整。如果产品已经给出来清晰的规则,事情往往比较简单,我们只需要按照这个规则实现自己的布局算法即可。可大多数情况下还是需要我们研发自己去调研,从已开源的项目里面找到合适的布局算法,然后结合我们当前项目的流程图框架来实现。目前上有部分流程图框架已经自带了一些布局算法,但是在实际项目中,还有比较多的细节需要处理,例如让布局后的连线排布更加合理、某些节点位置保证相对不变等。
摘要由CSDN通过智能技术生成

背景

随着项目中流程图被运营同学画的越来越复杂,出现了一个流程图上存在几百个节点的情况,流程图带来的业务逻辑可视化效果越来越不明显。虽然我们提供了分组、注释、记号等修饰性功能去支持标识流程中重要的业务关键点,但是效果仍然不明显。这个时候想再去通过人为调整去让混乱的流程图变得清晰,比我们代码重构还难。所以为了解决这个问题,我们增加了自动布局和一键美化功能,通过实践发现这两种方案效果都不错,有自己独特的应用场景。

自动布局

自动布局大家最常见到的效果应该是脑图。画图的人不需要手动调整节点的位置,由系统自动计算出节点合适的位置。

自动布局的优缺点

在实际项目中,并不是所有的流程图都可以用自动布局,需要基于具体的产品来结合自动布局的优缺点来权衡。

自动布局优点:

  1. 操作便捷,省去了传统绘制流程图的位置调整的操作成本。
  2. 流程图风格统一,整个流程图美观度下限更高。

自动布局的不足:

  1. 首先能用的业务场景有限,一般用于树型结构(如脑图)或者布局有规律的场景。
  2. 画布空间利用率不高,系统引导的节点位置在很多情况下不是最优的,但是因为自动布局不允许调整节点位置,所以在节点较多的情况下,整个画布空白的地方比较多。

实现自动布局

对于布局目前社区有很多方案,在很多数据可视化库中都有使用。我们在流程图这边最常用一般都是结构化布局hierarchy。在结构化布局里面,又有基于不同的情况,使用不同的布局方案,例如tree、dagre、elk等。关于图布局的详细介绍,大家可以看这篇文章:Using layouts · Cytoscape.js, 这里就不详细介绍了。

在我们需要用到自动布局的业务场景中,比较适合的是树布局。我们就直接使用了GitHub - antvis/hierarchy: Layout algorithms for visualizing hierarchical data. 。用它的原因主要是API使用起来比较方便(API上比

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值