您的位置:首页 > 移动开发 > 微信开发

WeZRender:微信小程序Canvas增强组件

2017-06-13 10:47 405 查看
摘要:WeZRender是一个微信小程序Canvas增强组件,基于HTML5Canvas类库ZRender

WeZRender是一个微信小程序Canvas增强组件,基于HTML5Canvas类库ZRender。



使用

WXML:


<canvasstyle="width:375px;height:600px;"canvas-id="line-canvas-1">canvas>
JS:


varwezrender=require('../../lib/wezrender');
zr=wezrender.zrender.init("line-canvas-1",375,600);

特性

数据驱动:利用WeZRender绘图,只需定义图形数据。


varcircle=newwezrender.graphic.shape.Circle(
shape:{
cx:50,
cy:50,
r:50
},
style:{
fill:'red',
lineWidth:10
}
});
丰富的图形选项

内置多种图形元素(圆形、椭圆、圆环、扇形、矩形、多边形、直线、曲线、心形、水滴、玫瑰线、Trochoid、文字、图片等),统一且丰富的图形属性充分满足个性化需求。


vardroplet=newwezrender.graphic.shape.Droplet({
shape:{
cx:200,
cy:300,
width:50,
height:50
},
style:{
fill:'#ff9999'
}
});
强大的动画支持:提供promise式的动画接口和常用缓动函数,轻松实现各种动画需求。


varimage=newwezrender.graphic.Image({
style:{
x:0,
y:0,
image:'../../images/koala.jpg',
width:32,
height:24,
text:'koala'
}
});
zr.add(image);
image.animateStyle(true)
.when(2000,{
x:350,
y:450,
width:360,
height:270,
})
.start();
易于扩展:分而治之的图形定义策略允许扩展图形元素。


varPin=wezrender.graphic.Path.extend({
type:'pin',
shape:{//x,yonthecusp
x:0,
y:0,
width:0,
height:0
},
buildPath:function(path,shape){varx=shape.x;vary=shape.y;varw=shape.width/5*3;//Heightmustbelargerthanwidth
varh=Math.max(w,shape.height);varr=w/2;//Distonywithtangentpointandcirclecenter
vardy=r*r/(h-r);varcy=y-h+r+dy;varangle=Math.asin(dy/r);//Distonxwithtangentpointandcirclecenter
vardx=Math.cos(angle)*r;vartanX=Math.sin(angle);vartanY=Math.cos(angle);
path.arc(
x,cy,r,Math.PI-angle,Math.PI*2+angle
);varcpLen=r*0.6;varcpLen2=r*0.7;
path.bezierCurveTo(
x+dx-tanX*cpLen,cy+dy+tanY*cpLen,
x,y-cpLen2,
x,y
);
path.bezierCurveTo(
x,y-cpLen2,
x-dx+tanX*cpLen,cy+dy+tanY*cpLen,
x-dx,cy+dy
);
path.closePath();
}
});

项目地址

https://github.com/guyoung/WeZRender

开源协议

本项目依据MIT开源协议发布,允许任何组织和个人免费使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息