用html5的canvas和JavaScript创建一个绘图程序的简单实例

2019-01-28 14:33:47于丽

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

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

XML/HTML Code复制内容到剪贴板
  1. <canvas id="canvasInAPerfectWorld" width="490" height="220"></canvas>  

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

XML/HTML Code复制内容到剪贴板
  1. context = document.getElementById('canvasInAPerfectWorld').getContext("2d");  

开始绘图过程

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

JavaScript Code复制内容到剪贴板
  1. var clickX = new Array();    var clickY = new Array();   
  2. var clickDrag = new Array();//存储路径点    var paint;//是否绘制,mousedown时置为true   
  3. function addClick(x, y, dragging)    {   
  4.   clickX.push(x);      clickY.push(y);   
  5.   clickDrag.push(dragging);    }  

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

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

XML/HTML Code复制内容到剪贴板
  1. function redraw(){      context.clearRect(0, 0, context.canvas.width,   context.canvas.height); // 清除画布内容   
  2.         context.strokeStyle = "#df4b26";//设置线条颜色   
  3.   context.lineJoin = "round";//当两条线条交汇时,创建圆形边角      context.lineWidth = 5;//线条粗细   
  4.                   for(var i=0; i < clickX.length; i++) {           
  5.     context.beginPath();//开始一条路径,或重置当前的路径        if(clickDrag[i] && i){   
  6.       context.moveTo(clickX[i-1], clickY[i-1]);         }else{