有一个需求,根据各个比例画一个canvas圆环图;例子如下
我找了echart的插件,没弄好,然后尝试自己用canvas花了弧形的图;
1、在wxml里面定义一个canvas标签:
<canvas canvas-id='mycanvas' style='width:160rpx;height:160rpx'></canvas>
1、在data里面给定每部分的比例,比如:
countlist:[0.22,0.4,0.23],
colorlist:['red','blue','green']
3、开始绘制 这个图:
const ctx = wx.createCanvasContext('mycanvas')
ctx.setLineWidth(6);//环形图线条宽度
for(var i in this.data.countlist){
ctx.beginPath();
ctx.setStrokeStyle(this.data.colorlist[i]);//配置每段弧形的背景色
var begin = (i == 0 ? 0 : (this.data.countlist[i-1]+0.01)* Math.PI);//设置每段弧形之间的距离和开始位置;
var end = (this.data.countlist[i] - 0.01)* Math.PI//设置每段弧形的结束位置;
ctx.arc(40, 40, 37, begin,end);//以中心(40,40)为圆心,37为半径绘制弧形
ctx.stroke();
}
ctx.draw()