基于html的拓扑图编辑器,基于HTML5的拓扑图编辑器(2)

继续来说编辑器的需求, 前面介绍了拖拽创建节点、以及连线的方法,并加入到了其后的 Qunee 类库,实际应用中需要更多功能,Qunee 的拓扑图编辑器也在逐渐完善,一方面增加多种编辑交互,一方面提供数据导入导出,同时也在摸索编辑器的整体界面设计和前端开发框架 a695446dbd7002a800c20532390b8c90.png

拖拽创建节点

延续之前提供的功能,增加更多可配置选项(可设置节点类型,样式和属性),支持按住shift快捷键,直接拖入到分组内 c95c0477cf3c0f941a88c56884c48fcc.png

新增多种交互模式

708502bcf8b62edd8cdd477d35555b26.png

创建连线交互

Q.Consts.INTERACTION_MODE_CREATE_SIMPLE_EDGE = "create.simple.edge";

Q.Consts.INTERACTION_MODE_CREATE_EDGE = "create.edge";

Q.Consts.INTERACTION_MODE_CREATE_SHAPE = "create.shape";

Q.Consts.INTERACTION_MODE_CREATE_LINE = "create.line";

可以直接从一个节点拖拽连接到另一个节点,也可以创建中间拐点的连线

graph.interactionMode = Q.Consts.INTERACTION_MODE_CREATE_EDGE;

96cc4486451971e4e197aeec35eafd27.pngaaad17cacbabb4504302e92aca720d7b.png

连线编辑

普通模式下,设置 graph 为可编辑,此时点击可编辑的图元进入编辑模式

graph.editable = true;

graph.interactionMode = Q.Consts.INTERACTION_MODE_DEFAULT;

5a2fe80a86768bda8c894a1212adce75.png

创建多边形

graph.interactionMode = Q.Consts.INTERACTION_MODE_CREATE_SHAPE;

e1bd8e8d2a73cddbf042ef896de6edaf.png

创建多线段

graph.interactionMode = Q.Consts.INTERACTION_MODE_CREATE_LINE;

e20664263f82e32bfd92753e847b3fe6.pngc2bd103d12987cee82313b45eeb7692e.png

编辑多边形

graph.editable = true;

graph.interactionMode = Q.Consts.INTERACTION_MODE_DEFAULT;

调整宽高

改进了Q.ResizeInteraction d14c0d6b38e2a1f81ea98470069e5382.png105b5f0e552f886076e17fead8c541d0.png

移动拐点

增加了拐点编辑交互器(Q.PointsInteraction),默认编辑状态时,双击多边形进入编辑模式 b076593b867430eb58abfa913b02fc47.png1f3b6ab4e71c791028be1b673b9d4edf.png

右键菜单交互

通过右键菜单(移动平台下可以选择长按),点击在不同类型的图元上,弹出不同的设置菜单项

graph.html.oncontextmenu = function(evt){

Q.stopEvent(evt);

showMenu(evt, graph);

}

graph.addCustomInteraction({

onstart: function (evt) {

menu.hide();

}

});

5ac4de5f39303aeb8d6e3ea3f2cf9826.png21a1121d41f49fddcc9e8d123a841e54.png

数据导入导出

通过扩展,实现exportJSON和parseJSON方法,实现对拓扑图的导入导出,便于存储 46a4114b6db25659bbfd69e78bebcfc3.png

在线示例演示

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Litegraph 是一个轻量级的基于 HTML5 Canvas 的节点编辑器框架,用于构建数据流图、拓扑图和计算机辅助设计工具。Vue 是一个流行的 JavaScript 框架,用于构建用户界面。 结合 Litegraph 和 Vue 可以很容易地实现拓扑图。以下是一些关键步骤: 1. 安装 Litegraph 和 Vue。你可以通过 npm 安装这两个库。 2. 创建一个 Vue 组件,用于呈现 Litegraph 编辑器。 3. 在 Vue 组件的 mounted 生命周期钩子函数中,创建一个 Litegraph 的 Graph 对象,并将它绑定到 HTML5 Canvas 元素上: ``` const canvasElement = this.$refs.canvas; const graph = new LiteGraph.LGraph(); graph.attachToCanvas(canvasElement); ``` 4. 添加节点到 Litegraph 编辑器中。Litegraph 有很多内置节点,你也可以创建自定义节点。添加节点的方法通常是将它们实例化,然后将它们添加到 Graph 对象中。 5. 在 Litegraph 编辑器中连接节点。你可以使用 Litegraph 提供的连线工具连接节点,或者编写代码手动连接它们。 6. 可以在 Vue 组件中添加一些控件,例如按钮和文本框,用于控制 Litegraph 编辑器中的节点。 7. 最后,在 Vue 组件的 beforeDestroy 生命周期钩子函数中,将 Litegraph 编辑器从 Canvas 元素中分离: ``` graph.detachFromCanvas(); ``` 这只是一个简单的示例,你可以根据自己的需求和应用场景来扩展它。关于 Litegraph 和 Vue 的更多信息,可以参考官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值