首页 > 代码库 > html5 canvas

html5 canvas

 

The HTML5 <canvas> element is used to draw graphics, on the fly, via scripting (usually JavaScript).

1、<canvas>本身没有外观,只是在文档中创建了一个画板,我们需要使用脚本来画图

2、IE9前的浏览器不支持canvas

3、使用canvas画图如果需要移动时需要擦除后重新绘制,区别于svg

4、画图api大部分定义在canvas对象getContext("2d")获得的上下文对象上(CanvasRenderingContext2D对象)

5、每个canvas元素只有一个上下文对象,同一元素每次调用getContext()时得到的是同一个上下文对象

6、canvas允许保存当前图像状态,并且在已保存的状态间切换; 使用save()保存,使用restore()恢复

 

 


 

 

eg:创建canvas,获取CanvasRenderingContext2D对象:

var canvas = document.getElementById("square");var context = canvas.getContext("2d");<canvas id="square" width=10 height=10></canvas>

 

创建路径


 

 

创建路径:eg:

//路径定义context.beginPath();context.moveTo(100,100); //从100,100开始定义一条新的子路径context.lineTo(200,200); //从100,100到200,200绘制线段context.lineTo(300,400);//从200,200到300,400绘制线段//绘制和填充路径context.fill(); //填充context.stroke();  //绘制

 

设置样式:


 

 

设置样式:

context.fillStyle = "#ccc";  //填充颜色context.strokeStyle = "#008"; //绘制颜色context.lineWidth = 5; //线宽context.fill();context.stoke();

 

保存和获取图像状态:


 

 

保存和获取图像状态:

context.restore(); //恢复最后一次保存的图像状态context.save(); //再次保存以便下次使用

 

可以封装为如下工具函数,从状态栈中弹出最后一次保存的状态:

CanvasRenderingContext2D.prototype.revert = function(){    this.restore();    this.save();    return this;}

return this实现链式调用

 

坐标系变换:


 

 

坐标系变换:

translate(): 上下左右移动  + 或者 -

rotate(): 顺时针旋转  x + sin  y-cos

scale(): x和y轴进行延长或者缩短 *

 

颜色


 

 

颜色:支持RGB, RGBA, HSL, HSLA颜色空间,通过设置strokeStyle和fillStyle实现

HSL: hue, saturation, lightness

对于任何hsl颜色,亮度为100%时颜色都为纯白色;凡是亮度为0的颜色都是黑色

eg:

"#222";"rgb(60,60,60)";"rgba(60,60,60,0.5)";‘‘transparent";"hsl(60,100%, 50%)";"hsla(60, 100%,50%,0.6)";

 

文本相关:


 

 

文本相关:

fillText();strokeText();textAlign();textBaseLine();

 


 

阴影:

shadowColorshadowOffsetXshadowOffsetYshadowBlur

 

 

其他:

sparkline: 迷你图,用于显示少量数据的图形,通常嵌入在文本流中,用于描述内嵌在文本、数字、图片中的且高分辨率的图形