返回
快速导航关闭
当前搜索
网站分类
栏目推荐
实用工具
热门标签
子分类:
付费投流网 >巨量引擎 » 正文

汽车发动机技术,虚幻引擎5,开源图编辑引擎X6,可快速搭建流程图、DAG 图、ER 图

巨量引擎 更新时间: 发布时间: 巨量引擎归档 最新发布 网站地图

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个蚂蚁体验科技开源的图编辑引擎——X6。


X6 是 AntV 旗下的图编辑引擎,提供了一系列开箱即用的交互组件和简单易用的节点定制能力,方便我们快速搭建 DAG 图、ER 图、流程图等应用。


功能特性

  • 极易定制:支持使用 SVG/HTML/React/Vue 定制节点样式和交互

  • 开箱即用:内置 10+ 图编辑配套扩展,如框选、对齐线、小地图等

  • 数据驱动:基于 MVC 架构,用户更加专注于数据逻辑和业务逻辑

  • 事件驱动:完备的事件系统,可以监听图表内发生的任何事件


安装X6

通过 npm 或 yarn 命令安装 X6。

# npm$ npm install @antv/x6 --save# yarn$ yarn add @antv/x6

安装完成之后,使用 import 或 require 进行引用。

import { Graph } from '@antv/x6';

如果是直接通过 script 标签引入,可以使用下面三个 CDN 中的任何一个,默认返回 X6 的最新版:

  • https://unpkg.com/@antv/x6/dist/x6.js

  • https://cdn.jsdelivr.net/npm/@antv/x6/dist/x6.js

  • https://cdnjs.cloudflare.com/ajax/libs/antv-x6/1.3.20/x6.js (不支持获取最新版)

<script src="https://unpkg.com/@antv/x6/dist/x6.js"></script>

对于生产环境,我们推荐使用一个明确的版本号,以避免新版本造成的不可预期的破坏:

  • https://unpkg.com/@antv/x6@1.1.1/dist/x6.js

  • https://cdn.jsdelivr.net/npm/@antv/x6@1.1.1/dist/x6.js

  • https://cdnjs.cloudflare.com/ajax/libs/antv-x6/1.1.1/x6.js

<script src="https://unpkg.com/@antv/x6@1.1.1/dist/x6.js"></script>


使用X6

1 创建容器

在页面中创建一个用于容纳 X6 绘图的容器,可以是一个 div 标签。

<div id="container"></div>

2 准备数据

X6 支持 JSON 格式数据,该对象中需要有节点 nodes 和边 edges 字段,分别用数组表示:

const data = {  // 节点
  nodes: [
    {      id: 'node1', // String,可选,节点的唯一标识
      x: 40,       // Number,必选,节点位置的 x 值
      y: 40,       // Number,必选,节点位置的 y 值
      width: 80,   // Number,可选,节点大小的 width 值
      height: 40,  // Number,可选,节点大小的 height 值
      label: 'hello', // String,节点标签
    },
    {      id: 'node2', // String,节点的唯一标识
      x: 160,      // Number,必选,节点位置的 x 值
      y: 180,      // Number,必选,节点位置的 y 值
      width: 80,   // Number,可选,节点大小的 width 值
      height: 40,  // Number,可选,节点大小的 height 值
      label: 'world', // String,节点标签
    },
  ],  // 边
  edges: [
    {
      source: 'node1', // String,必须,起始节点 id
      target: 'node2', // String,必须,目标节点 id
    },
  ],
};

3 渲染画布

首先,我们需要创建一个 Graph 对象,并为其指定一个页面上的绘图容器,通常也会指定画布的大小。

import { Graph } from '@antv/x6';// 使用 CDN 引入时暴露了 X6 全局变量// const { Graph } = X6const graph = new Graph({  container: document.getElementById('container'),  width: 800,  height: 600,
});

如果是通过 script 标签引入方式,我们的 Graph 对象是挂载在 X6 这个全局变量下面:

<script src="https://unpkg.com/@antv/x6/dist/x6.js"></script><script>  const graph = new X6.Graph({    container: document.getElementById('container'),    width: 800,    height: 600,
  });</script>

然后,我们就可以使用刚刚创建的 graph 来渲染我们的节点和边。

graph.fromJSON(data)

到此,我们就得到一个最简单的 Hello --> World 示例:


4 背景和网格

接下来,我们来给画布设置一个背景颜色和网格,另外还支持背景图片、网格类型等配置

import { Graph } from '@antv/x6';const graph = new Graph({  container: document.getElementById('container'),  width: 800,  height: 600,  background: {    color: '#fffbe6', // 设置画布背景颜色  },  grid: {    size: 10,      // 网格大小 10px    visible: true, // 渲染网格背景  },});


图表示例

流程图

人工智能建模DAG图

ER图

思维导图

BPMN

泳道图

ELK

组织架构图

UML类图

展开/折叠树


—END—

开源协议:MIT

开源地址:
https://github.com/antvis/X6

转载请注明:文章转载自 http://chemrm.com/
本文地址:http://chemrm.com/jlyq/10157.html
考高分网交流群

扫一扫加入QQ交流群

和更多志同道合朋友一起交流,分享干货资料!
付费投流网客服

扫一扫加客服微信

有疑问请咨询付费投流网微信号,在线为您解答!
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 Copyright Your WebSite.Some Rights Reserved. Powered · 创奇学院

ICP备案号:浙ICP备14032708号