简单的饼状图
来源:互联网 发布:扫雷技巧红包软件 编辑:程序博客网 时间:2024/05/20 08:42
<canvas></canvas>
<script type="text/javascript">
var canvas=document.querySelector('canvas');
canvas.width=600;
canvas.height = 700;
canvas.style.border = '1px solid #000';
var ctx=canvas.getContext('2d');
var data=[{
"value":.4,
"color":"red"
},{
"value":.2,
"color":"blue"
},{
"value":.3,
"color":"green"
},{
"value":.1,
"color":"grey"
var endAngle=0;
var data1=data[0];
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,360*data1.value*Math.PI/180);
ctx.fillStyle=data1.color;
ctx.fill();
var data2=data[1];
beginAngle=endAngle+360*data1.value;
endAngle=beginAngle+360*data2.value;
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,endAngle*Math.PI/180);
ctx.fillStyle=data2.color;
ctx.fill();
var data3=data[2];
beginAngle=endAngle;
endAngle=endAngle+360*data3.value;
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,endAngle*Math.PI/180);
ctx.fillStyle=data3.color;
ctx.fill();
var data4=data[3];
beginAngle=endAngle;
endAngle=endAngle+360*data4.value;
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,endAngle*Math.PI/180);
ctx.fillStyle=data4.color;
<script type="text/javascript">
var canvas=document.querySelector('canvas');
canvas.width=600;
canvas.height = 700;
canvas.style.border = '1px solid #000';
var ctx=canvas.getContext('2d');
var data=[{
"value":.4,
"color":"red"
},{
"value":.2,
"color":"blue"
},{
"value":.3,
"color":"green"
},{
"value":.1,
"color":"grey"
}];
//第一种
var beginAngle=0;var endAngle=0;
var data1=data[0];
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,360*data1.value*Math.PI/180);
ctx.fillStyle=data1.color;
ctx.fill();
var data2=data[1];
beginAngle=endAngle+360*data1.value;
endAngle=beginAngle+360*data2.value;
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,endAngle*Math.PI/180);
ctx.fillStyle=data2.color;
ctx.fill();
var data3=data[2];
beginAngle=endAngle;
endAngle=endAngle+360*data3.value;
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,endAngle*Math.PI/180);
ctx.fillStyle=data3.color;
ctx.fill();
var data4=data[3];
beginAngle=endAngle;
endAngle=endAngle+360*data4.value;
ctx.beginPath();
ctx.moveTo(300,300);
ctx.arc(300,300,200,beginAngle*Math.PI/180,endAngle*Math.PI/180);
ctx.fillStyle=data4.color;
ctx.fill();
//第二种遍历
var w=300;
var beginAngle=0;
var endAngle=0;
for(var i=0;i<data.length;i++){
ctx.beginPath();
ctx.moveTo(w,w);
endAngle +=data[i].value*360;
ctx.arc(w,w,200,beginAngle*Math.PI/180,endAngle*Math.PI/180);
ctx.fillStyle=data[i].color;
ctx.fill();
beginAngle=endAngle;
}
阅读全文
0 0
- 简单的饼状图
- 简单的饼状图
- 简单的,简单的
- JFreeChart制作简单的饼状图
- JFreeChart制作简单的饼状图
- 简单的
- 一个简单的饼状图的绘制!
- 简单破解的简单步骤
- 简单的爱,简单的幸福
- 杀毒软件的简单实现的简单实现
- ListView的简单的简单美化
- 一简单代码的简单错误。。。
- JavaScript 简单DOM API的简单使用
- 如何简单制作简单的个人主页(一)
- 简单记录,Notification.builder的简单实用
- 简单编辑器、菜单栏的简单实现
- Java简单模式的简单例子
- jsp简单练习-简单的下拉表单
- 第四篇:类加载机制
- 使用pylint 规范python代码
- 微信群发,图文消息
- 面试题:自己编写双向链表(不限语言)
- 自定义自适应的TabLayout
- 简单的饼状图
- 闭包
- MySQLdayday05(创建个表 数据类型 默认编码表 默认值 增删改 约束 )
- 第五篇:多态性实现机制——静态分派与动态分派
- UVA 1153 Keep the Customer Satisfied
- Spring的AOP开发实战和疑问解析
- 代码智能感知——Visual Assist X
- pylogin系列之畅言登录评论接口分析
- Android零基础入门第37节:初识ListView