html设置雷达图的位置,html5 canvas绘制雷达图

前两天在群里看到一张图,图片如下,

30bcaea59c3f8a794f9cd2052a6ace88.png

于是自己尝试了一下,用canvas看能否动态绘制能力分布图,以下是我的思路,有不足之处还望老司机们多多指教;

可以自定义参数如下:

92222efa681aef9fd5c86e0c913c08d3.png

废话不多说,先上效果图:

a053f10386137483ef3ff5c166ae9822.gif

1、首先是绘制多边形,现在画布中心绘制圆形,然后在园中动态获取多边形的顶点,然后使用lineTo()方法绘制正多边形;效果图如下:

804cf554e1db60d2f48e5eee41473e76.png

2、为了有层次感,需要再绘制两个小的正多边形,而且这几个多边形是需要有透明度的,如下图:

32db97240f00e4459c87fcc6d2b256e7.png

3、依次绘制对角线及最外层图标,如下图

502329cd3e62432ee400eb98a26a228e.png

5、然后就是绘制橙色能力部分以及所有能力之和的均值;如下图

a27ff404d90dccf76a93639093b6f6c5.png

6,最后就是使用setTimeOut或者requestAnimationFrame实现动画效果;

存在问题:

1、当绘制图形为偶数边多边形时,小图片下的介绍文字会显示不完全,如下图:

7031371be96e3c1c43fcc7a39f206a4c.png

主要原因是偶数边多边形能的图标有分布在canvas的正下方区域,解决办法是适当调整图标所在圆形的半径(iconsRadius)和中心三个多边形的半径(polygons  > radius);

2、绘制图在移动端会显示失真,图标显示会稍微不清楚;如下图:暂时没有找到解决办法

0a5240cea30d73a5d008b7d0333fb976.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值