基于Prototype,利用Canvas绘图实现的web流程图设计器(原型)

关键字: javascript prototype script.aculo.us canvas 流程图 web画线

刚才在首页看到这么个帖子 图形间连线算法 ,说来也巧,最近自己也在做这么个玩意儿,就是在web上拖放图标,然后连线,这段时间也算有点收获,实现了这么个玩意儿,发上来给大家看看,顺便征求点意见。附件是效果图和源码示例。

特点:
1、基于Prototype、Script.aculo.us,利用HTML5的标签Canvas实现,因为ie目前不支持这个,所以引入了google的excanvas库适配到VML,但是对于开发人员来说,api都是同一的一套,比较爽;

2、节点可动态生成、可拖放,并显示了拖放行为,比如不会拖出画板,也不会重叠在一起(这样对以后连线开了方便之门);

3、绘制连线的时候,可根据鼠标移动,实时反映线段状态,拖动节点也能试试反映连线状态;

4、节点、连线都可响应鼠标点击选中事件,并可响应键盘delete键删除选中的元素(线段或节点);

5、源码结构实现了OO封装以及经典的MVC模式,大大降低各部分耦合度。

绘图步骤:
1、您可以在右侧拖放一个项目到左侧的画板生成一个新方块(这个以后可以用漂亮的图标代替),在初始化的时候我已经加入了三个;

2、点击画板上方的“单向连线”按钮之后,即可点击起始节点,然后移动鼠标至结束节点再点击一下,即可在这两个节点间绘制有向线段。每次只能画一条线,画完了需要再次点击按钮重复绘制;

3、节点可拖动,但是不会被拖出画板,如果两个节点重叠了,那么不会允许放置在最终位置,而是弹回原始位置;

4、点击节点可选中当前节点,要选择线段的话必须点击中部的箭头处,被选中的元素以红色区分,此时可通过敲击键盘delete键删除此元素,而且,如果删除的是有连线的节点,此节点相关的连线都将被删除。

结语:这只是个原型,还有待完善,最大的问题还是对于OP9,连线中点的箭头显示还有问题,慢慢来吧,先放出来给大家看看,欢迎交流。如果大家有非直线连接图形的好算法,希望能提供出来,非常感谢!

顺便广告一下,昨天在je也发布了一个基于Canvas的仿Google动画导航条实现,可惜关注的人不多,我觉得canvas是个好玩的东西,希望大家能关注下,有兴趣的可以移驾这里看看:

基于Prototype和Canvas实现的仿Google导航条

  • demo.rar (51.9 KB)
  • 描述: 源码示例
  • 下载次数: 710
  • 描述: 操作截图,其中一条线正在绘制之中
  • 大小: 6.4 KB

转载于:https://www.cnblogs.com/xjyggd/archive/2008/07/02/1234207.html

[转]基于Prototype,利用Canvas绘图实现的web流程图设计器(原型)相关推荐

  1. activiti表单设计器_基于Vue,ElementUI开发的一款表单设计器

    介绍 基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来 工具地址: http://tools.xiaoyaoji.cn/form Gi ...

  2. 基于Vue,ElementUI开发的一款表单设计器

    介绍 基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来 工具地址:http://form.making.link GitHub地址:h ...

  3. 基于Ant Design和jQuery UI的表单设计器

    基于Ant Design 和jQuery UI 的表单设计器 GitHub 地址 概念 Comonent 组件 Layout 布局,一种特殊的Component Component Editor 组件 ...

  4. 【基于Leaflet和Canvas绘图的前端大量栅格数据渲染】

    1. 需求 有包含30万坐标点的json文件,每个坐标点包含经度.纬度.行值.列值.数值,现需要根据数值分级进行不同颜色的显示,并在地图的正确位置进行渲染.最终效果如下: 2. 环境和工具 2.1 使 ...

  5. 基于webassembly的web报表设计器

    WebAssembly介绍 Webassembly(简称Wasm)是一种基于堆栈虚拟机的二进制指令格式.Webassembly用于编译C/C++/Rust等高级语言,生成一个可移植的目标,使客户端与服 ...

  6. html5 jquery版工作流设计器,基于jQuery的web在线流程图设计器GooFlow

    搭建Nginx+Java环境测试并且运行 一.简介: Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱.虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态 ...

  7. 基于JQUERY的WEB在线流程图设计器GOOFLOW 0.9版

    换工作后又结婚,一个版本拖了两年才出来--  跨浏览器,可兼容IE8--IE11, FireFox, Chrome, Opera等几大内核的浏览器,且不需要浏览器再加装任何控件. (IE8时,使用V ...

  8. 基于JQUERY的WEB在线流程图设计器GOOFLOW 0.7版

     跨浏览器,可兼容IE7--IE10, FireFox, Chrome, Opera等几大内核的浏览器,且不需要浏览器再加装任何控件. (IE7-IE8时,使用VML:IE9以上,FF,OPERA, ...

  9. 基于web的工作流设计器(多比图形控件)

    多比图形控件是一款基于Web的矢量图形控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器.工作流流程监视器解决方案. 可广泛应用于包括:电力.军工.煤炭.化工.科研.能源 ...

最新文章

  1. 3-flutter 项目结构 资源 依赖
  2. 机器学习-特征工程中的样本不均衡处理方法
  3. 音视频技术开发周刊 | 139
  4. SAP C4C里嵌入SAP Analytics Cloud的案例
  5. 不解析,使用解析对象
  6. python字符串补空格输出_Python去除空格,Python中常见字符串去除空格的方法总结...
  7. AI市场需求变化了,应届生们却还停留在几年前的认知上...
  8. 一维卷积神经网络原理,卷积神经网络原理简述
  9. android 国家代码
  10. 戏精,程序员的桌面画风竟然是酱紫的!
  11. Ubuntu18.04之lightdm取代gdm
  12. Windows环境下的视图之间切换快捷键及几个常用快捷键
  13. 统计学基础知识(三)
  14. java long类型值不能为0_关于原始类型:Java:为什么不能将int转换为Long
  15. Debian10更换apt源
  16. php查询mysql充值_PHP + MYSQL 实现 用户注册/登录/充值 功能
  17. 【java进阶02:抽象类和接口】类与类之间的关系 抽象类与接口的区别
  18. C语言 破解字典生成器
  19. 北京平面设计培训哪家好 ?平面设计培训课程有哪些?
  20. 现货黄金入门与技巧:必须具备的心理素质

热门文章

  1. 盘点 2022 云原生实战峰会产品发布
  2. Morphling:云原生部署 AI ,如何把降本做到极致?
  3. android 桌面循环滚动字幕,循环滚动字幕
  4. A级计算机考试试题,计算机等级考试一级试题及答案-计算机a级试题
  5. qt on android 桌面鼠标事件,關於Qt on Android,程序安裝到手機,界面只占到一小部分。...
  6. python画图y轴在右侧_解决python中画图时x,y轴名称出现中文乱码的问题
  7. 链家混三个月底薪_链家悲惨工作经历,新人参考
  8. linux sendto 对方关闭后性能,Gateway的请问sendToUid是否有性能问题?
  9. 816固件a2可以升a1吗_关于A1,A2,A3,B1,B2驾驶证使用新规定,你知多少?
  10. 【视频课】零基础免费38课时深度学习+超60小时CV核心算法+15大Pytorch CV实践案例助你攻略CV...