绘图语法_国产开源精品,可视化在线绘图引擎——Topology

Topology是一款基于typescript + canvas的开源在线绘图引擎,适用于微服务架构图、网络拓扑图等多种场景。其特点是开源、易扩展且高性能,支持数据导入导出和图片保存,提供丰富的图形库中间件以便定制。文档详细,适合企业项目集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

Topology是开源、易扩展、方便集成的在线绘图(微服务架构图、网络拓扑图、流程图、活动图、时序图、类图等)工具。基于 typescript + canvas 实现的开源在线绘图的引擎 Topology。采用引擎 + 图形库中间件的思路能够方便、快速的扩展、集成到前端项目。


b73816ad916b0bfb0b88ee683fbb1a38.png

Github

https://github.com/le5le-com/topology

下面是引用作者的原话:


为什么重复造轮子:

1、笔者工作中遇到比较多的微服务架构、云资源运维、部署与运维可视化方面的需求

2、开源、满足自己需求的不多

3、typescript + 纯粹canvas架构的不多

4、以中间件方式可定制满足不同场景的不多

5、最重要的是,兴趣 + 不难


相关特性

  • 开源

开源、开源、开源,重要的事情说三遍。不可否认,市面上已经很多类似工具,但开源的不多,尤其国内的。

  • 易扩展

引擎实现了节点、线条、箭头、拖拉拽、缩放、旋转等公共基础功能,通过npm库的方式扩展定制自己的图形库。方便在不同的项目场景,定制自己的图形库和产品。

  • 流畅、高性能

采用canvas技术,不用担心dom节点过多可能会影响性能;根据不同作用场景,采用多种离屏机制,大幅度减少不必要的渲染

  • 动画演示

考虑到微服务流量演示,暂时仅实现了简单版的线条流量动画,其他欢迎提出场景需求

  • TypeScript

不依赖前端框架(angular/react/vue),使用TypeScript能获得友好的语法和编译错误提示,以及友好的重构效率支持。编译后支持es6方式使用

  • 数据导入导出

能够很方便的以json数据格式导入导出

  • 图片保存

canvas原生友好的支持图片下载保存

  • 方便的企业定制

设计之初就考虑到不同项目的使用场景需求不同,故以引擎 + 图形库的方式去设计,极大的方便不同的企业项目定制和使用。

使用场景

  • 微服务架构图
  • 运维时部署结构拓扑图
  • 流程图
  • 活动图
  • 时序图
  • 类图等
  • 其他图(可联系作者)

be3f273d04d5468d9f9d5c0df2dbe5f2.png

架构设计介绍

主要由:层、节点、连线和箭头等组成。


860e65b983a970ede00abe356fe7522a.png

层:

这里的层,主要是为了提升性能的逻辑层;与类似ps里面的用户图层无关。

  • 离屏层:包含所有绘图数据,是最稳定的图层。
  • 选中层:用户选中部分或全部节点/连线的高亮图层,并设置相关属性、缩放、和旋转等。
  • 动画层:主要用于演示动画。
  • 活动层:主要用于箭头鼠标交互事件,比如锚点和连线过程。

节点:

是画布的主要组成部分,节点内部还可以包含图标或文字。

连线和箭头:

连线和箭头是关联在一起的。连线两端可以选择设置或不设置箭头。节点可以通过控制点进行整体缩放、旋转。


6e65c7ff669788d0ade6fbcda0cb9cf2.png

连线只表示节点描点间的连线,不存在缩放、旋转。节点缩放或旋转会造成控制点的重计算。连线形状可以由线的控制点改变。


e223617e7ae60f2f4760dbb6e80639ed.png

绘画与属性:

节点和连线各种有自身的绘画属性,同时还可以设置一个附加的自定义数据


1e44c1c9f8e307c839466dffe44d2a02.png

如何快速集成到自己的项目

es6使用示例:

https://github.com/le5le-com/topology/tree/master/demo


typescript使用示例:

https://github.com/le5le-com/topology/tree/master/src/app/home

相关文档

作者将文档放在非常优雅的文档管理工具语雀上:

https://www.yuque.com/alsmile/topology


683fcfa40000bd67a72099ceefb435be.png

54a73a424cfb97f20704de79c1e535f5.png

可自行部署使用!

热门图文一览


88562cbc37069682a1f0da05c8271e36.png

总结

Topology是其作者闲暇之余的作品,虽然作者说简单,但是对于部分初学者或者对这方面不熟悉的开发者来说,还是有一定难度的,作者提供了这样一个作品出来,可供我们学习和使用,当然得多多支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值