[聚合文章] canvas图表(3) - 饼图

HTML5 2017-11-23 16 阅读

原文地址:canvas图表(3) - 饼图
这几天把canvas图表都优化了下,动画效果更加出色了,可以说很逼近echart了。刚刚写完的饼图,非常好的实现了既定的功能,交互的动画效果也是很棒的。

效果请看:饼图https://edwardzhong.github.io/sites/demo/dist/chartpie.html
it

功能点包括:

  1. 组织数据
  2. 绘制
    3. 数据动画的实现;
    4. 鼠标事件的处理。

使用方式

饼图的数据方面要简单很多,因为不用多个分组的数据。把所有的数据相加得出总数,然后每个数据分别求出百分比,有了百分比再相乘360度的弧度得出每个数据在圆盘中对应的要显示的角度。

    var con=document.getElementById('container');    var pie=new Pie(con);    pie.init({        W:1600,        H:1000,        title:'网站用户访问来源',        toolTip:'访问来源',        data:[            {value:435, name:'直接访问'},            {value:310, name:'邮件营销'},            {value:234, name:'联盟广告'},            {value:135, name:'视频广告'},            {value:1548, name:'搜索引擎'}        ]    });

代码结构

因为为了同时实现新增动画和更新动画,这次的代码结构经过了重构和优化,跟之前的有比较大的区别。

    class Line extends Chart{        constructor(container){            super(container);        }        // 初始化        init(opt){        }        // 绑定事件        bindEvent(){        }        // 显示信息        showInfo(pos,arr){        }        // 清除内容再绘制        clearGrid(index){        }        // 执行数据动画        animate(){        }        // 执行        create(){        }        // 组织数据        initData(){
                

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。