慕课网实战—《用组件方式开发 Web App全站 》笔记六-雷达图组件开发

运用HTML5、CSS3、JS流行技术,采用组件式开发模式,开发Web App全站!技术大牛带你统统拿下不同类型的HTML5动态数据报告! 《用组件方式开发 Web App全站 》雷达图组件开发
摘要由CSDN通过智能技术生成

运用HTML5、CSS3、JS流行技术,采用组件式开发模式,开发Web App全站!技术大牛带你统统拿下不同类型的HTML5动态数据报告!
《用组件方式开发 Web App全站 》

雷达图开发(设计说明)

    这里写图片描述

雷达图开发(背景层开发)

var H5ComponentRadar =function ( name, cfg ) {
   
  var component =  new H5ComponentBase( name ,cfg );

  //  绘制网格线 - 背景层
  var w = cfg.width;
  var h = cfg.height;

  //  加入一个画布(网格线背景)
  var cns = document.createElement('canvas');
  var ctx = cns.getContext('2d');
  cns.width = ctx.width = w;
  cns.height = ctx.height =h;
  component.append(cns);

  var r = w/2;
  var step = cfg.data.length;


  //  计算一个圆周上的坐标(计算多边形的顶点坐标)
  //  已知:圆心坐标(a,b)、半径 r;角度deg。
  //  rad = ( 2*Math.PI / 360 ) * ( 360 / step ) * i
  //  x = a + Math.sin( rad ) * r;
  //  y = b + Math.cos( rad ) * r;

  //  绘制网格背景(分面绘制,分为10份)
  var isBlue = false;
  for( var s = 10;s >0 ;s--){

    ctx.beginPath();
    for( var i=0;i<step;i++){
      var  rad = ( 2*Math.PI / 360 ) * ( 360 / step ) * i;

      var x = r + Math.sin( rad ) * r * (s/10);
      var y = r + Math.cos( rad ) * r * (s/10);
      ctx.lineTo(x,y);    
    }
    ctx.closePath();
    ctx.fillStyle = (isBlue = !isBlue) ? '#99c0ff' : '#f1f9ff';
    ctx.fill();
  }

  //   绘制伞骨
  for(var i = 0;i<step;i++){
    var  rad = ( 2*Math.PI / 360 ) * ( 360 / step ) * i;

    var x = r + Math.sin( rad ) * r ;
    var y = r + Math.cos( rad ) * r ;
    ctx.moveTo(r,r);
    ctx.lineTo(x,y);
    //  输出项目文字
    var text = $('<div class="text">');
    text.text( cfg.data[i][0] );
    text.css('transition','all .5s '
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值