AntV 推出全新的图编辑引擎 X6

2020年03月16日

X6 是蚂蚁金服 AntV 旗下的图编辑引擎,X 象形图编辑场景的关系链接,同时 X6 又是 G6 的孪生兄弟,所以沿用了 G6 中的 6,深究一下,6 源于《六度分隔理论》,表达了我们对关系数据、关系网络的敬畏和着迷。

X6 脱胎于蚂蚁实际的业务场景,在此基础上,我们完善了图编辑场景的常用扩展,如小地图、网格系统、对齐线、框选、redo/undo等,内置了图编辑场景的常规交互和设计,如群组、链接桩、节点缩放、旋转、连线交互,并提供了基于 HTML 和 React 低成本定制节点能力。

特性预览

快速上手

只需要掌握创建画布、添加节点/边、更新节点/边、删除节点/边这几个 API 即可开始使用 X6,并且我们已将 X6 所有特性提取到画布的配置项中,系统默认的配置文件 preset.ts  包含 50 多个配置项 300 多行配置代码,您可以基于 X6 的配置能力快速定制出自己的画布。

节点、连线与画布,图编辑核心能力

易定制节点

X6 预置了一些常用节点样式,创建节点时通过 shape 来指定使用哪种图形来渲染节点即可直接使用,而且绝大部分节点样式和交互都可被自定义。

然而,实际业务场景中的节点可能要更复杂,预置样式不满足需求?没关系,我们还提供了两种灵活的自定义节点的方式。一种使用 HTMLElement 或 HTML 代码片段来定义节点(使用时将 shape 指定为 html 即可);另一种还可以使用 React 组件来渲染节点(使用 X6 注册节点 API 注册 @antv/x6-react-shape 配合咱家 antd 更是天生一对哦)。

丰富连线和箭头样式

内置了直线、曲线、拐线、正交线、关系线、循环线等常见连线样式和 10 多种箭头样式。

网格系统与无限画布

网格是节点在画布中定位时最小像素单元,例如当节点的位置是 {x: 12, y: 18} 网格大小为 5 时,那么节点渲染到画布的实际位置将是 {x:10, y: 20}。X6 默认提供了 linedot 两种风格的网格,并且支持自定义网格大小和颜色。

infinite 选项设置为 true 开启无限大画布,当节点/边移动到画布边缘时画布会自动扩充画布大小。

交互能力与配套组件,图编辑不可或缺

链接桩与锚点

通过父子节点和 isPort 选项可以将指定的 cell 设置为链接桩,使其具备可连接性。锚点是沿节点边框布局的固定连接点,内置矩形/圆形/椭圆/三角形等边框布局,支持定制锚点的数量和位置,当鼠标 hover 到节点是才显示锚点,在锚点上按下鼠标可以触发连线。

点选和框选

点击节点/边时选中节点,按下 Cmd/Ctrl 连续点击可以同时选中多个节点,通过 rubberband  配置项来开启框选能力,同时支持 selectionPreview 选项配置选中节点/边的样式。

对齐线

对齐线是移动节点排版的辅助工具,默认禁用,可以通过 guide 配置项开启和定制对齐线的样式。

小地图

支持渲染粒度定制和样式定制,即是否在小地图中渲染节点/边,默认只渲染节点。在小地图中并不会绘制完整的节点,而是用一个色块代替节点,色块颜色支持自定义。

UI 组件

搭建一个复杂的图编辑应用还需要用到 Menubar、Toolbar、Dropdown、ContextMenu、Splitbox 等 UI 组件,我们在 x6-components 中提供了一些这样的 React 组件,可以搭配 antd 使用。

最后

非常感谢你的耐心阅读,X6 还是个新生儿,虽然内测版早已在内部数据研发(ER图)、运维中台(流程图)等多个产品应用上线,但相信还有很多问题有待完善,欢迎在 GitHub 给我们反馈问题。如果你对 X6 或者 AntV 旗下的其他产品感兴趣,可以通过以下渠道关注我们:

展开阅读全文
32 收藏
分享
加载中
精彩评论
666
2020-03-16 14:12
1
举报
最新评论 (11)
666
2020-03-17 14:22
0
回复
举报
2020-03-17 12:29
0
回复
举报
目前跟gojs还有点距离。希望越做越好
2020-03-16 22:04
0
回复
举报
以后不用写前端了, 你们把前端要干的事情干完了都
2020-03-16 21:30
0
回复
举报
相当牛X,正好我们在找图编辑组件
2020-03-16 21:01
0
回复
举报
这是要弄个yEd出来吗?
我期待可以图建模转数据模型用来图计算
2020-03-16 16:44
0
回复
举报
666,如果有类似draw.io的成品就完美了
2020-03-16 15:54
0
回复
举报
很好 自定义锚点功能期待很久了
2020-03-16 14:52
0
回复
举报
您好,请问全系列支持H5,小程序,移动端吗?
2020-03-16 14:28
0
回复
举报
666
2020-03-16 14:12
1
回复
举报
更多评论
11 评论
32 收藏
分享
返回顶部
顶部