饼图

作者: YT_Zou | 来源:发表于2017-02-27 16:17 被阅读0次
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{width: 600px;height: 600px;margin: 0 auto;}
        canvas{border: 1px solid red;}
    </style>
</head>
<body>
<div>
    <canvas width="600px" height="600px" id="pie"></canvas>
</div>
<script>
    var timer = null;
    clearInterval(timer);
    timer = setInterval(function () {
        var color = ["#c12e34", "#0098d9", "#e6b600", "#2b821d", "#005eaa", "#339ca8", "#cda819", "#32a487"];
        var arr = [Math.random()*10,Math.random()*10,Math.random()*10,Math.random()*10,Math.random()*10,Math.random()*10,];
        var canvas = document.getElementById("pie");
        var ctx = canvas.getContext("2d");
        var sum = getSum(arr);
        function getSum(val){       //求和
            return eval(val.join("+"));
        }
        var startCycle = 0;
        ctx.clearRect(0,0,canvas.width,canvas.height);      //在给定的矩形内清除给定的像素(x轴,y轴,需要清除的宽度,需要清除的高度)
        for(var i=0;i<arr.length;i++){
            var cycle = arr[i]/sum*2*Math.PI;
            var endCycle = cycle+startCycle;
            ctx.beginPath();        //起始一条路径,或重置当前路径
            ctx.strokeStyle=color[i];       //设置或返回用于笔触的颜色,渐变或模式
            ctx.lineWidth=arr[i]/sum*350;       //设置或返回当前的线条宽度
            ctx.arc(canvas.width/2,canvas.height/2,ctx.lineWidth/2+80,startCycle,endCycle,false);   //创建弧、曲线(经常用于创建圆形或半圆)[x轴,y轴,半径,起始角度,结束角度,是否逆时针]
            ctx.stroke();       //绘制已经定义的路径
            startCycle = endCycle;
        }
    },1000);
</script>
</body>
</html>

相关文章

网友评论

      本文标题:饼图

      本文链接:https://www.haomeiwen.com/subject/qvizwttx.html