接着上一节说,这次我使用canvas绘制了饼状图,主要是SectorGraph.js,

引入

import {canvasPoint} from '../../assets/js/canvas';
import {basicInfo,histogramMousemoveEvent} from '../../assets/js/SectorGraph';

使用方法:

function histogramCreate(width,point){
  var canvas=document.getElementById('myCanvas');
  if(!!width){
  if(width > 758)
  canvas.width = width;
  }else{
  var canvasWidth = document.getElementById('histogramPanel');
  if(canvasWidth.offsetWidth > 758)
  canvas.width = canvasWidth.offsetWidth;0
  }
  addHistogramMousemove(canvas);
  var ctx=canvas.getContext('2d');
  ctx.clearRect(0,0,canvas.width,canvas.height);
  //绘制饼状图
  basicInfo(ctx,[{num:20,name:"0001",color:"red"},
  {num:20,name:"0002",color:"black"},
  {num:20,name:"0003",color:"yellow"},
  {num:20,name:"0004",color:"gray"},
  {num:12,name:"0005",color:"pink"},
  {num:42,name:"0006",color:"blue"},
  {num:2,name:"0007",color:"green"}
]);
}

SectorGraph.js介绍:

我感觉注释写的很细了,所以具体细节我就不说额,只是把我的思路说一下,用户给到数据后,我会计算每一个数据里面的数量占总数量的百分比,这样就拿到了度数,用户绘制饼状图,然后需要给每一个饼状图添加备注信息,这个我的思路是分左边备注和右边备注,取每个饼的中心点作为开始点,然后把开始点进行排序,用贝塞尔曲线连接每一个开始点和备注点,还有一个问题就是每次用户鼠标进入的时候的效果,我会存储每个饼的位置,当鼠标滑动时时候,我会判断点是否在饼中,并获得在哪一个饼中,然后重绘。

最新文章

  1. 为什么要用rem
  2. gcc的-D和-U参数:宏的设置与取消 _CCFLAGS=" -w -enable-threads=posix -DLINUX -D_REENTRANT -DWORKONGN -Dlinux -D_GN_DETAIL_SDR_"
  3. linux的free命令
  4. MYSQL BENCHMARK函数的使用
  5. ubuntu: qemu+gdb 调试linux kernel 学习笔记
  6. Java中 return 和finally
  7. Python 基础【第六篇】字典
  8. 武汉科技大学ACM :1006: 华科版C语言程序设计教程(第二版)习题7.15
  9. 《TCP/IP详细说明》读书笔记(17章)-TCP传输控制协定
  10. 安装GPU版本的tensorflow填过的那些坑!---CUDA说再见!
  11. ChromeExtension那些事儿
  12. p标签内容实现第二行缩进两个字体间距
  13. ROIAlign, ROIPooling及ROIWarp对比
  14. rman 脚本大全
  15. mybatis核心文件详解
  16. Vue笔记:使用 axios 发送请求
  17. vue子组件的自定义事件
  18. UVALive 6913 I Want That Cake 博弈dp
  19. flash 拾遗
  20. 第十一次PSP

热门文章

  1. Windows 安装Java与配置环境变量
  2. 从0开始安装fedora23的笔记-- 以及使用fedora的常规问题-3
  3. luogu1975 [国家集训队]排队
  4. Git 命令收集
  5. (转)Awesome Courses
  6. (zhuan) Speech and Natural Language Processing
  7. hihoCoder 1145 幻想乡的日常(树状数组 + 离线处理)
  8. HDU 6203 ping ping ping(dfs序+LCA+树状数组)
  9. ECMAScript6语法重点(二)
  10. SqlServer中常常搞不清楚 sp_columns来看一看