canvas与工作流的不解之缘
html的标签 <canvas>用于图形的绘制,通过脚本 (通常是JavaScript)来完成,canvas简而言之就是个画布。上一篇文章我们提到工作流的一个重要组成部分:流程建模,也就是流程图;
啥也不说,咱先看个效果:
上面这个就是用canvas绘制的流程图,流程图里的节点连线都是自由拖拽上去的。
那么canvas是怎么绘制流程图的,首先canvas只是html的标签,那我们要实现流程节点的拖拽与绘制那肯定是要借助其他开发语言的,通常咱们使用JavaScript来完成绘制。那我们具体应该怎么做呢:
- 定义canvas画布
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> </canvas>
- 获取画布实例
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
3.使用画布实例方法绘制
Canvas具体方法可参考https://www.runoob.com/html/html5-canvas.html
我这里是将节点都以图片的形式绘制,简单点来说就是先做好节点的图片,比如这样的
,为什么使用这种方式呢,因为做出来的好看点啊。然后使用画布方法ctx.drawImage(img,10,10);绘制节点图片。绘制图片的时候需要制定图片的绘制大小以及坐标,canvas就是个二维网格带坐标位置的;这样我们就能将节点放置到我们指定的位置了;
经过以上三个步骤,咱们就初步的将节点绘制出来了,算是朝着成功又迈进了一个猪蹄子 哈哈哈,当然,要实现真正流程图绘制,这还只是个开始;不过也别气馁,一步一步做到才更有成就感不是。
这里可能有些同学可能要问了,为啥使用canvas来绘制流程图呢,为什么不用其他的;如果你问出这个疑问,那说明你的小脑瓜是活动的,哈哈,开个玩笑啦;以前最早的时候用过flash绘制过流程图,但是后来因为浏览器对flash的支持问题,最后人在屋檐下不得不低头啊;之后又看过SVG,这个也是蛮强大的,svg与canvas各有千秋,最终个人偏好吧决定使用canvas来绘制流程图。
好吧,这篇就先写到这里,写太长了写的累大伙看的也累,哈哈
欢迎大伙留言评论,交流才能更好的进步,是吧
canvas与工作流的不解之缘的更多相关文章
- canvas绘制工作流之绘制节点
上一篇我们介绍了canvas绘制工作流的大概步骤,接下来会有系列文章细致的介绍怎么用canvas绘制工作流:这篇文章主要介绍用canvas绘制流程节点. 绘制前我们需要先准备一张节点图片,例如::好了 ...
- HTML5 学习总结(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- canvas绘图、WebGL、SVG
目录 一.Canvas 1.1.创建canvas元素 1.2.画线 1.3.绘制矩形 1.4.绘制圆弧 1.5.绘制图像 1.6.绘制文字 1.7.随机颜色与简单动画 二.WebGL 2.1.HTML ...
- HTML5 学习笔记(四)——canvas绘图、WebGL、SVG
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- JavaScript + SVG实现Web前端WorkFlow工作流DAG有向无环图
一.效果图展示及说明 (图一) (图二) 附注说明: 1. 图例都是DAG有向无环图的展现效果.两张图的区别为第二张图包含了多个分段关系.放置展示图片效果主要是为了说明该例子支持多段关系的展现(当前也 ...
- 工作流引擎Activiti使用总结
http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html 1.简单介工作流引擎与Activiti 对于工作流引擎的 ...
- Activiti工作流引擎使用
http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html 1.简单介工作流引擎与Activiti 对于工作流引擎的 ...
- HTML学习总结(四)【canvas绘图、WebGL、SVG】
一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...
- Nginx+Django-Python+BPMN-JS的整合工作流实战项目
前言 找一个好用的画图工具真心不容易,Activiti 工作流自带的 Web 版画图工具,外表挺华丽,其实使用起来各种拧巴:Eclipse 的 Activiti 画图插件,对于相对复杂的流程也是很不友 ...
随机推荐
- 支撑微博亿级社交平台,小白也能玩转Redis集群(原理篇)
Redis作为一款性能优异的内存数据库,支撑着微博亿级社交平台,也成为很多互联网公司的标配.这里将以Redis Cluster集群为核心,基于最新的Redis5版本,从原理再到实战,玩转Redis集群 ...
- 从.NET CORE2.2升级到3.0过程及遇到的一些问题
RoadFlow工作流引擎从.NET Core2.2升级到3.0遇到了一些问题及解决方式这里记录一下. 1.DLL项目框架从2.2选择到3.0,这个没什么好说的,没有问题.重点的WEB层的一些变化. ...
- Neo4j:图数据库GraphDB(三)创建删除及高级操作
本片继续前几篇介绍图数据库的创建,有疑问可以我的看看前两篇文章:http://www.cnblogs.com/rongyux/p/5537206.html 四 图数据库的创建 1 创建一个节点 P ...
- 网页背景H5视频自动播放---PC端、移动端兼容问题完美解决方案(IOS、安卓、微信端)
最近公司官网需要使用视频当做banner背景且自动播放,并且因为是官网需要做到PC端和移动端都可以适配兼容,这些问题很是头疼: 兵来将挡,水来土掩,进过查阅相关技术资料,现已完美兼容PC端和移动端.下 ...
- .htaccess文件上传利用
一般.htaccess可以用来留后门和针对黑名单绕过 创建一个txt写入 AddType application/x-httpd-php .png 打开另存为 保存类型为所有文件 上传.htacces ...
- python学习-变量和简单类型(二)
学习笔记中的源码:传送门 1.注释: 单行注释(#):多行注释("""或者''') 2.python标准数据类型:数字(numbers).字符串(string).列表(l ...
- OSI七层模型和五层TCP/IP协议
1.查公网ip的方法: windows,打开浏览器,访问百度,搜IP即可 linux:curl ifconfig.me 2.OSI七层模型 ==网络工程师:== 物理层 1层,通信介质的信号到数字信号 ...
- Spring Boot 2.X(十二):定时任务
简介 定时任务是后端开发中常见的需求,主要应用场景有定期数据报表.定时消息通知.异步的后台业务逻辑处理.日志分析处理.垃圾数据清理.定时更新缓存等等. Spring Boot 集成了一整套的定时任务工 ...
- centos7将python默认版本升级
想用centos7来写python,但是默认安装的是python2.7(python -v命令可以查看版本信息) 准备升级到python3.5.2 首先安装编译环境 yum -y install gc ...
- Prism - MVVM模式下,StackPanel中增加和删除View(UserControl)
一.现实效果 在学习Prim,看官方的例子 03-CustomRegions 只是一个简单演示,这里用MVVM方式做个了相对完整的例子,实现效果如图: 点击Add,右侧StackPanel中增加一个V ...