html的标签 <canvas>用于图形的绘制,经过脚本 (一般是JavaScript)来完成,canvas简而言之就是个画布。上一篇文章咱们提到工做流的一个重要组成部分:流程建模,也就是流程图;html
啥也不说,咱先看个效果:html5
上面这个就是用canvas绘制的流程图,流程图里的节点连线都是自由拖拽上去的。canvas
那么canvas是怎么绘制流程图的,首先canvas只是html的标签,那咱们要实现流程节点的拖拽与绘制那确定是要借助其余开发语言的,一般我们使用JavaScript来完成绘制。那咱们具体应该怎么作呢:浏览器
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;"> </canvas>
var c=document.getElementById("myCanvas"); var ctx=c.getContext("2d");
3.使用画布实例方法绘制svg
Canvas具体方法可参考https://www.runoob.com/html/html5-canvas.htmlspa
我这里是将节点都以图片的形式绘制,简单点来讲就是先作好节点的图片,好比这样的,为何使用这种方式呢,由于作出来的好看点啊。而后使用画布方法ctx.drawImage(img,10,10);绘制节点图片。绘制图片的时候须要制定图片的绘制大小以及坐标,canvas就是个二维网格带坐标位置的;这样咱们就能将节点放置到咱们指定的位置了;htm
通过以上三个步骤,我们就初步的将节点绘制出来了,算是朝着成功又迈进了一个猪蹄子 哈哈哈,固然,要实现真正流程图绘制,这还只是个开始;不过也别气馁,一步一步作到才更有成就感不是。blog
这里可能有些同窗可能要问了,为啥使用canvas来绘制流程图呢,为何不用其余的;若是你问出这个疑问,那说明你的小脑瓜是活动的,哈哈,开个玩笑啦;之前最先的时候用过flash绘制过流程图,可是后来由于浏览器对flash的支持问题,最后人在屋檐下不得不低头啊;以后又看过SVG,这个也是蛮强大的,svg与canvas各有千秋,最终我的偏好吧决定使用canvas来绘制流程图。图片
好吧,这篇就先写到这里,写太长了写的累大伙看的也累,哈哈ip
欢迎大伙留言评论,交流才能更好的进步,是吧