使用html5的canvas和JavaScript创建一个绘图程序的示例代码


本文摘自PHP中文网,作者黄舟,侵删。

下面小编就为大家带来一篇用html5的canvas和JavaScript创建一个绘图程序的简单实例。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文将引导你使用canvas和JavaScript创建一个简单的绘图程序。

首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面。

1

2

XML/HTML Code复制内容到剪贴板

<canvas id="canvasInAPerfectWorld" width="490" height="220"></canvas>

获取绘图环境,context对象提供了用于在画布上绘图的方法和属性


1

context = document.getElementById('canvasInAPerfectWorld').getContext("2d");

开始绘图过程

首先我们需要存储绘图路径点坐标,addClick函数添加坐标点值到数组

1

2

3

4

5

6

7

8

9

10

var clickX = new Array();  

var clickY = new Array();  

var clickDrag = new Array();//存储路径点

var paint;//是否绘制,mousedown时置为true

function addClick(x, y, dragging)  

{  

  clickX.push(x);  

  clickY.push(y);  

  clickDrag.push(dragging);  

}

redraw函数每次调用整个canvas就会重新绘制一次。首先我们清空画布上内容,设置绘制线条颜色粗细线条连接方式。然后

两点之间绘制一段路径,将数组中的坐标点依次绘制出来

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

function redraw(){  

  context.clearRect(0, 0, context.canvas.width,   context.canvas.height); // 清除画布内容  

  context.strokeStyle = "#df4b26";//设置线条颜色  

  context.lineJoin = "round";//当两条线条交汇时,创建圆形边角  

  context.lineWidth = 5;//线条粗细  

  for(var i=0; i < clickX.length; i++) {          

    context.beginPath();//开始一条路径,或重置当前的路径  

    if(clickDrag[i] && i){  

      context.moveTo(clickX[i-1], clickY[i-1]);  

     }else{  

       context.moveTo(clickX[i]-1, clickY[i]);  

     }  

     context.lineTo(clickX[i], clickY[i]);  

     context.closePath();  

     context.stroke();//绘制路径  

  }  

}

绘制过程需要的事件

1 mousedown事件

绘图这点击到画布上时,将触发该事件执行。调用了addClick函数,并将paint置为true。

1

2

3

4

5

6

7

$('#canvas').mousedown(function(e){  

  var mouseX = e.pageX - this.offsetLeft;  

  var mouseY = e.pageY - this.offsetTop;  

  paint = true;  

  addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);  

  redraw();  

});



2 mousemove事件

mousedown中设置的paint为true后,鼠标移动时触发mousemove事件执行,将鼠标移动的所有点记录下来,并不断调用redraw重绘画布。

1

2

3

4

5

6

$('#canvas').mousemove(function(e){  

   if(paint){  

     addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);  

     redraw();  

   }  

 });

3 mouseup事件

mouseup鼠标点击后松开或者拖拽后松开,表示绘制完成该路径,将paint置为false。

1

2

3

$('#canvas').mouseup(function(e){  

   paint = false;  

 });

4 mouseleave事件

mouseleave鼠标离开canvas元素,将paint置为false。

1

2

3

$('#canvas').mouseleave(function(e){  

  paint = false;  

});

以上就是使用html5的canvas和JavaScript创建一个绘图程序的示例代码的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

HTML5的web界面中meta实列详解

javascript会代替java吗

10个开发者经常问的javascript面试题(附答案解析)

HTML5 history模式是什么

canvas处理图片的方法

javascript怎么保留两位小数

vue.js框架怎么下载

javascript中sort()方法怎么用

nw.js的localstorage的物理储存实例详解

javascript高阶函数的详细介绍(附代码)

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...