HTML5技术

使用原生JavaScript的Canvas实现拖拽式图形绘制,支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多

字号+ 作者:H5之家 来源:H5之家 2017-11-09 16:05 我要评论( )

前言 需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - - 一、实现的功能 1、基于oop思想构建,支持坐标点、线条(由坐标点组成,包含方向)、多边形(由多个坐标点组成)、圆形(包含圆心坐标点和半径)等实体 2、原生JavaScript实现,

前言

需要用到图形绘制,没有找到完整的图形绘制实现,所以自己实现了一个 - -

一、实现的功能

1、基于oop思想构建,支持坐标点、线条(由坐标点组成,包含方向)、多边形(由多个坐标点组成)、圆形(包含圆心坐标点和半径)等实体

2、原生JavaScript实现,不依赖任何第三方js库和插件

3、多图形绘制(支持画笔、线条、箭头、三角形、矩形、平行四边形、梯形以及多边形和圆形绘制)

4、拖拽式绘制(鼠标移动过程中不断进行canvas重绘)

5、图片绘制(作为背景图片时重绘会发生闪烁现象,暂时有点问题,后面继续完善)

5、清空绘制功能

6、新版本优化绘制性能(使用共享坐标变量数组,减少了大量的对象创建操作)

7、新版本支持箭头绘制功能

二、完整实现代码

 

[javascript]  

 



 

 

三、使用方式

1、图形类型

0:鼠标,1:画笔,2:线条,3:三角形,4:矩形,5:多边形,6:圆形,21:箭头,41:平行四边形,42:梯形
var graphkind={'cursor':0,'pen':1,'line':2,'trian':3,'rect':4,'poly':5,'circle':6,'arrow':21,'parallel':41,'trapezoid':42};

2、初始化以及使用背景图片和画笔选择

 

[javascript]  

 

2、绘制箭头

 

[javascript]  

 

  • drawUtil.begin(21);  
  •  

     

     

     

    四、演示demo

     

    点击这里跳转demo

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • Spring Boot使用thymeleaf模板时报错:Template might not exist or migh

      Spring Boot使用thymeleaf模板时报错:Template might not exist or

      2017-10-31 11:40

    • 开始Java8之旅(六) -- 使用lambda实现Java的尾递归 - 祈求者-

      开始Java8之旅(六) -- 使用lambda实现Java的尾递归 - 祈求者-

      2017-10-26 10:02

    • Entity Framework Core 2.0 使用入门 - 晓晨Master

      Entity Framework Core 2.0 使用入门 - 晓晨Master

      2017-10-24 09:33

    • 使用 Newtonsoft.Json 操作 JSON 字符串 - 溪边静禅

      使用 Newtonsoft.Json 操作 JSON 字符串 - 溪边静禅

      2017-10-21 09:00

    网友点评
    r