//画布封装函数
function canvas(o){
o.dom.innerHTML="";
var c=document.createElement("canvas");
c.width=o.dom.offsetWidth;
c.height=o.dom.offsetHeight;
o.dom.appendChild(c);
var ctx=c.getContext("2d");
//阴影水平距离
if(!!o.shadowOffsetX) ctx.shadowOffsetX=o.shadowOffsetX;
//阴影垂直距离
if(!!o.shadowOffsetY ) ctx.shadowOffsetY =o.shadowOffsetY ;
//阴影扩张
if(!!o.shadowBlur) ctx.shadowBlur=o.shadowBlur;
//阴影颜色
if(!!o.shadowColor) ctx.shadowColor=o.shadowColor;
if(!!o){
for (var i = 0; i < o.s.length; i++) {
ctx.beginPath();
//渐变模式设置
if(!!o.s[i].fillLinear){
var grd = ctx.createLinearGradient(o.s[i].fillLinear[0][0],
o.s[i].fillLinear[0][1],
o.s[i].fillLinear[1][0],
o.s[i].fillLinear[1][1]);
}else if(!!o.s[i].fillRadial){
var grd = ctx.createRadialGradient( o.s[i].fillRadial[0][0],
o.s[i].fillRadial[0][1],
o.s[i].fillRadial[0][2],
o.s[i].fillRadial[1][0],
o.s[i].fillRadial[1][1],
o.s[i].fillRadial[1][2]);
}
if(!!o.s[i].lineLinear){
var grd1 = ctx.createLinearGradient(o.s[i].lineLinear[0][0],
o.s[i].lineLinear[0][1],
o.s[i].lineLinear[1][0],
o.s[i].lineLinear[1][1]);
}
//边框或线条宽度
if(!!o.s[i].width){
ctx.lineWidth=o.s[i].width;
};
//边框或线条颜色
if(!!o.s[i].color){
ctx.strokeStyle=o.s[i].color;
};
//边框或线条线性渐变
if(!!o.s[i].lineLinearcolor){
for (var n = 0; n < o.s[i].lineLinearcolor.length; n++) {
grd1.addColorStop(o.s[i].lineLinearcolor[n][0], o.s[i].lineLinearcolor[n][1]);
}
ctx.strokeStyle = grd1;
};
//填充色及渐变
if(!!o.s[i].fillcolor){
for (var n = 0; n < o.s[i].fillcolor.length; n++) {
grd.addColorStop(o.s[i].fillcolor[n][0], o.s[i].fillcolor[n][1]);
}
ctx.fillStyle = grd;
}else{
ctx.fillStyle = o.s[i].fillbgcolor;
};
//创建矩形或圆或线条或文本
transform(ctx,o.s[i]);
if(!!o.s[i].arc){
ctx.arc(o.s[i].arc[0],o.s[i].arc[1],o.s[i].arc[2],o.s[i].arc[3],o.s[i].arc[4]);
}else if(!!o.s[i].rect){
ctx.rect(o.s[i].rect[0],o.s[i].rect[1],o.s[i].rect[2],o.s[i].rect[3]);
}else if(!!o.s[i].line){
//设置线条端点样式,可选值round(圆形线帽),square(方形线帽),butt(平直)
if(!!o.s[i].tou) ctx.lineCap=o.s[i].tou;
//设置两条线相交拐角类型,bevel(斜角),round(创建圆角),miter(尖角)
if(!!o.s[i].jiao) ctx.lineJoin=o.s[i].jiao;
ctx.moveTo(o.s[i].line[0][0],o.s[i].line[0][1]);
//中间点
for (var g = 1; g