当前位置:网站首页>canvas--pie chart
canvas--pie chart
2022-08-02 03:38:00 【cjx177187】
<body>
<style>
#box {
border: 1px solid black;
}
</style>
<canvas id="box" width="600" height="600"></canvas>
<script>
var canvas = document.querySelector("#box")
var pen = canvas.getContext("2d")
var deg = Math.PI / 180
//假数据
var arr = [{
name: "clothes",
money: 8000
},
{
name: "car",
money: 1580
},
{
name: "eat",
money: 5790
},
{
name: "cash",
money: 4090
},
{
name: "foot",
money: 2439
},
]
//总价
arr.tatol = 0
for (let i = 0; i < arr.length; i++) {
arr.tatol = arr.tatol + arr[i].money
}
var stardeg = 0
arr.forEach(el => {
pen.beginPath()
var r1 = 200
//随机颜色
var r = parseInt(Math.random() * 255)
var g = parseInt(Math.random() * 255)
var b = parseInt(Math.random() * 255)
pen.fillStyle = `rgb(${ r},${ g},${ b})`
//求出每个money的占比
var angle = (el.money / arr.tatol) * 360
//Use proportions to draw arcs
pen.arc(300, 300, r1, stardeg * deg, (stardeg + angle) * deg)
//Connect the arc to the center of the circle,form a fan
pen.lineTo(300, 300)
//Add an array to each sectorname
var y1 = 300 + Math.sin((stardeg + angle) * deg-angle*deg/2 ) *( r1+30)
var x1 = 300 + Math.cos((stardeg + angle) * deg-angle*deg/2 ) * (r1+30)
pen.fillText(`${ el.name}`, x1, y1)
stardeg = stardeg + angle
pen.fill()
pen.stroke()
});
</script>
</body>
边栏推荐
- C语言的变长数组
- 页面加载流程
- ssm各类配置模板
- The usage of json type field in mysql
- 函数提升和变量提升
- 活体检测 Adaptive Normalized Representation Learning for GeneralizableFace Anti-Spoofing 阅读笔记
- Redis简单学习笔记
- docker 安装 sqlserver中的坑点
- Debian 10 NTP Service Configuration
- Phospholipid-polyethylene glycol-targeted neovascularization targeting peptide APRPG, DSPE-PEG-APRPG
猜你喜欢
subprocess.CalledProcessError: Command 'pip install 'thop'' returned non-zero exit status 1.
Phospholipid-polyethylene glycol-hydrazide, DSPE-PEG-Hydrazide, DSPE-PEG-HZ, MW: 5000
环形链表---------约瑟夫问题
骨架效果 之高级渐变,适用图片等待时
ThunderBirde无法登录问题、pycharm调试一直收集数据、RuntimeError: CUDA error: device-side assert triggered等疑难杂症解决
啃瓜记录又一天
配置mmdet来训练Swin-Transformer之一配置环境
How to check whether a table is locked in mysql
C语言的变长数组
MySql创建数据表
随机推荐
新工程加载YOLOV6的预训练权重问题
针对简历上的问题
科研试剂DMPE-PEG-Mal 二肉豆蔻酰磷脂酰乙醇胺-聚乙二醇-马来酰亚胺
mysql中如何查看表是否被锁
Phospholipid-polyethylene glycol-targeted neovascularization targeting peptide APRPG, DSPE-PEG-APRPG
ModuleNotFoundError No module named 'xxx' possible solutions
Scientific research reagent DMPE-PEG-Mal dimyristoylphosphatidylethanolamine-polyethylene glycol-maleimide
这些JS题面试时一定要答对!
第一篇博客
mysql阶段总结
知识工程作业2:知识工程相关领域介绍
DSPE-PEG-DBCO Phospholipid-Polyethylene Glycol-Dibenzocyclooctyne A Linear Heterobifunctional Pegylation Reagent
Error: with open(txt_path,'r') as f: FileNotFoundError: [Errno 2] No such file or directory:
如何查看一个现有的keil工程之前由什么版本的keil IDE编译
The difference between the knowledge question and answer session with the knowledge
C语言中关于2的n次方求值问题(移位运算)
subprocess.CalledProcessError: Command 'pip install 'thop'' returned non-zero exit status 1.
meime模块
L1-043 阅览室 (20分)
Dynamic proxy tool class