Canvas绘制饼图,不同区域填充不同颜色

Canvas绘制饼图,不同区域填充不同颜色
一、核心代码,注意执行顺序:

beginPath()、fillStyle = ‘色值’、fill()、closePath(),

二、代码
<!DOCTYPE html>
<html>
<head>
 <script type="application/javascript">
   function draw() {
     let canvas = document.getElementById("canvas");
     if (canvas.getContext) {
       let ctx = canvas.getContext("2d");
       //计算圆心坐标
       let x0 = ctx.canvas.width/2;
       let y0 = ctx.canvas.height/2;

       //把角度转化成弧度
       function rad(angle){
         return (2*Math.PI/360)*angle
       }

       //开启新路径
       ctx.beginPath();
       //将画笔移动到画布中央
       ctx.moveTo(x0,y0);
       //填充颜色
       ctx.fillStyle = '#5470c6';
       //ctx.arc(x0,y0,r,起始弧度,结束弧度);
       //一个圆的总弧度是2*π Math.PI可以获取π的值
       ctx.arc(x0,y0,150,rad(0),rad(150));
       //填充
       ctx.fill()
       //描边(有半径)
       ctx.stroke()
       //关闭路径
       ctx.closePath();

       ctx.beginPath();
       ctx.moveTo(x0,y0);
       //填充颜色
       ctx.fillStyle =  '#ee6666';
       ctx.arc(x0,y0,150,rad(150),rad(260));
       //填充
       ctx.fill()
       //描边(有半径)
       ctx.stroke()
       //关闭路径
       ctx.closePath();

       ctx.beginPath();
       ctx.moveTo(x0,y0);
       //填充颜色
       ctx.fillStyle = '#fac858';
       ctx.arc(x0,y0,150,rad(260),rad(350));
       //填充
       ctx.fill()
       //描边(有半径)
       ctx.stroke()
       //关闭路径
       ctx.closePath();
     }
   }
 </script>
</head>
<body onload="draw();">
<canvas id="canvas" width="1500" height="1050"></canvas>
</body>
</html>
三、效果图

绘制饼图效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值