小程序使用Canvas画饼图

先上效果图

-------------------------------------------------------------wxml代码开始---------------------------------------------------------------

<view class="canvas-content">
<canvas canvas-id="Canvas" style="width:100%;height:360px;"></canvas>
</view>

-------------------------------------------------------------wxml代码结束---------------------------------------------------------------

-------------------------------------------------------------js代码开始--------------------------------------------------------------------

Page({
data: {

},
onLoad: function () {
var context = wx.createCanvasContext(‘Canvas‘, this);
var array = [20, 50, 60,80];
var colors = ["#228B22","pink", "#008B8B", "#ADFF2F"];
var total = 0;
for (var val = 0; val < array.length; val++) {
total += array[val];
}
var point = { x: 160, y: 120 };
var radius = 100;
for (var i = 0; i < array.length; i++) {
context.beginPath();
var start = 0;
if (i > 0) {
for (var j = 0; j < i; j++) {
start += array[j] / total * 2 * Math.PI;
}
}
var end = start + array[i] / total * 2 * Math.PI;
context.arc(point.x, point.y, radius, start, end);
context.setLineWidth(2)
context.lineTo(point.x, point.y);
context.setStrokeStyle(‘#F5F5F5‘);
context.setFillStyle(colors[i]);
context.fill();
context.closePath();
context.stroke();
}
context.draw();
}
})

-------------------------------------------------------------js代码结束--------------------------------------------------------------------

原文地址:https://www.cnblogs.com/zengyanju/p/9837467.html

时间: 2024-08-03 12:36:07

小程序使用Canvas画饼图的相关文章

微信小程序之canvas画图生成图片下载

要实现的功能:点击朋友圈按钮弹出分享图片:点击保存分享图片保存到手机实现代码:1.分享按钮点击事件 /** * 分享 */ weixinShare:function(){ var that = this; console.log(111); share.canvasImg((res)=>{ console.log(222); that.setData({ imagePath: res.tempFilePath, bgShare:false, left:43 }); }); } 2.生成图片 /*

小程序和web画三角形

如图: 三角形,在很多时候,需要用到,例如tib提示信息,很多都是需要三角形来做辅助效果,在css样式中,代码如下: .Trianglebox{ width: 0px; height: 0px; border-style: solid; border-color: transparent blueviolet transparent transparent; border-width: 100px; } 页面代码: <div class="Trianglebox"> <

前端小程序——js+canvas 给图片添加水印

市场上各种各样的图片处理器有很多,那么作为程序员的我们是不是应该自己做一个呢?那就从加水印开始吧 html: <canvas id="shuiyinTest"> </canvas> <div> <input id="shuiyinText" value="" type="text"/> <button id="shuiyinBtn" class=&quo

wx小程序用canvas生成图片流程与注意事项

1.需要画入canvas的 图片都需要先缓存到本地 let ps = [] ps.push(that.loadImageFun(this.statusInfo.avatar_url, "headImg")) Promise.all(ps).then(res => { // 画图 }) loadImageFun(url, index) { let _this = this return new Promise((resolve, reject) => { wx.downloa

微信 小程序 canvas

测试手机为IPHONE6,开发者工具版本0.10.102800 微信小程序里的canvas 非 h5 canvas有很多不一样的地方,以下把微信小程序的canvas叫做wxcanvas 下面全是我一点点测试出的干货,耐心看: 1.wxcanvas,不像h5canvas那样有width和height属性和width和height的style样式.他只有style样式,可以理解为他就是个框吧: 2.wxcanvas不要当成真的H5canvas,就当它是个div就行,画出范围的东西也是存在的,改变wi

微信小程序 canvas 绘图问题总结

业务中碰到微信小程序需要生成海报进行朋友圈分享,这个是非常常见的功能,没想到实际操作的时候花了整整一天一夜才搞好,微信的 canvas 绘图实在是太难用了,官方快点优化一下吧. 业务非常简单,只需要将用到的图片,文案素材拼装到一张图片,保存到本地就可以了. 首先创建画布,将一张网上的图片画到画布上. const ctx = wx.createCanvasContext('shareCanvas'); ctx.drawImage("https://img3.doubanio.com/view/ph

canvas菜鸟基于小程序实现图案在线定制功能

前言 最近在捣腾一个 袜子图案在线定制 的小程序,核心的需求大概是选择一只纯色的袜子,然后客户可以在袜子上面添加图案,最终生成一个设计图保存后服务器.定制的图案可以旋转,缩放和拖动,当然,还可以删除. 内容比较初级, 因为我也只是一个 canvas 新手,本文仅是一次实践的记录. 实现-绘图 其实刚开始接手这个项目的时候,我是打算用小程序的 web-view 组件来嵌套 h5 的,因为小程序的 canvas 的坑,或者说小程序的坑,我是深有体会的,不过回过头来想,web-view 我还没再项目中

小程序——分享二维码报告

小程序分享报告(图片+二维码): 小程序页面生成图片:请用canvas,页面简单用canvas,页面复杂也用canvas. 踩过的坑: 思路:html  ->  html2canvas  ->  canvas||image/png; 最后涉及到小程序与H5页面项目连接问题(web-view &分享页面),还是用canvas老老实实画的 Bug1:小程序,不支持js获取Dom操作, 解决1:单独写https的一个H5页面来操作Dom.     <web-view  src='htt

前端面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)持续更新 &#362414;

原文: http://blog.gqylpy.com/gqy/438 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我