当前位置:网站首页>canvas--饼状图
canvas--饼状图
2022-08-02 03:22: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
//利用占比来画圆弧
pen.arc(300, 300, r1, stardeg * deg, (stardeg + angle) * deg)
//将圆弧与圆心相连接,形成扇形
pen.lineTo(300, 300)
//给每个扇形添加数组的name
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>
边栏推荐
- IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boo
- JJWT工具类
- 客户评分控件
- mysql8.0安装教程与配置(最详细)操作简单
- ThunderBirde无法登录问题、pycharm调试一直收集数据、RuntimeError: CUDA error: device-side assert triggered等疑难杂症解决
- 【 application 】 life many years of operations, what turned scored 12 k + annual bonus salary?
- MySQL8.0与MySQL5.7差异分析
- ModuleNotFoundError No module named 'xxx' possible solutions
- parser = argparse.ArgumentParser()解析
- @DateTimeFormat注解
猜你喜欢

DSPE-PEG-PDP, DSPE-PEG-OPSS, phospholipid-polyethylene glycol-mercaptopyridine supply, MW: 5000

DSPE-PEG-PDP,DSPE-PEG-OPSS,磷脂-聚乙二醇-巯基吡啶供应,MW:5000

parser = argparse.ArgumentParser() parsing

云服务器安装部署Nacos2.0.4版本

每天填坑,精卫填坑第二集,TX1 配置从固态启动,安装Pytorch

Source Insight 使用教程(2)——常用功能

C语言 0长度数组/柔性数组

Amazon sellers how to improve the conversion

MySql创建数据表

亚马逊卖家怎么提升转化率
随机推荐
解决glob()返回文件排序不一致问题&onnx本地按照安装方法
mysql8.0安装教程与配置(最详细)操作简单
MySQL8.0与MySQL5.7差异分析
DOM操作---放大镜案例
MySQL两阶段提交串讲
活体检测 Adaptive Normalized Representation Learning for GeneralizableFace Anti-Spoofing 阅读笔记
科研试剂DMPE-PEG-Mal 二肉豆蔻酰磷脂酰乙醇胺-聚乙二醇-马来酰亚胺
C语言 十六进制整数字符串转十进制整数
知识工程作业2:知识工程相关领域介绍
URL模块
@Accessors 注解详解
getattr() function analysis
STM32 map文件解析
parser = argparse.ArgumentParser()解析
Debian 10 NTP Service Configuration
化学试剂磷脂-聚乙二醇-羟基,DSPE-PEG-OH,DSPE-PEG-Hydroxyl,MW:5000
配置mmdet来训练Swin-Transformer之一配置环境
Phospholipid-Polyethylene Glycol-Aldehyde DSPE-PEG-Aldehyde DSPE-PEG-CHO MW: 5000
MySQL分区表详解
Phospholipid-polyethylene glycol-thiol, DSPE-PEG-Thiol, DSPE-PEG-SH, MW: 5000