一级片大奶子_色又黄又爽18禁免费视频_热久久久久久久_久久久精品一区二区_日韩av不卡在线播放_精品国内自产拍在线观看视频

商城系統(tǒng) 注冊(cè)

微信小程序?qū)崿F(xiàn)雷達(dá)圖的方式,小程序雷達(dá)圖怎么做

2018-05-21|HiShop
導(dǎo)讀:小程序雷達(dá)圖是財(cái)務(wù)分析報(bào)表的一種。即將一個(gè)公司的各項(xiàng)財(cái)務(wù)分析所得的數(shù)字或比率,就其比較重要的項(xiàng)目集中劃在一個(gè)圓形的圖表上,來表現(xiàn)一個(gè)公司各項(xiàng)財(cái)務(wù)比率的情況,使用者能一目了...



雷達(dá)圖(Radar Chart),又可稱為戴布拉圖、蜘蛛網(wǎng)圖(Spider Chart),是財(cái)務(wù)分析報(bào)表的一種。即將一個(gè)公司的各項(xiàng)財(cái)務(wù)分析所得的數(shù)字或比率,就其比較重要的項(xiàng)目集中劃在一個(gè)圓形的圖表上,來表現(xiàn)一個(gè)公司各項(xiàng)財(cái)務(wù)比率的情況,使用者能一目了然的了解公司各項(xiàng)財(cái)務(wù)指標(biāo)的變動(dòng)情形及其好壞趨向。

如果你想找到了解H5中怎么制作,可以看一下HTML5 Canvas制作雷達(dá)圖實(shí)戰(zhàn),我也是參考這篇文章,做了小程序的雷達(dá)圖,并做了一點(diǎn)延伸...


先來看看效果圖

微信小程序?qū)崿F(xiàn)雷達(dá)圖的方式,小程序雷達(dá)圖怎么做


開始上菜:

//.wxml ,接下來的操作將在這個(gè)Canvas上面繪制

<view class='radarContainer'>
<canvas class='radarCanvas' canvas-id='radarCanvas'></canvas>
</view>

 

//.wxss
.radarContainer{
   background-color: black;
   width:100%;
   height:420px;
   display: flex;
   justify-content:center;
    align-items: center; 
   position: relative;
 
}
.radarCanvas{
   width:400px;
   height:400px;
   margin: 0 auto;
   position: absolute;
}

 

//.js
初始化數(shù)據(jù):(我沒寫在data中)
var numCount = 6;  //元素個(gè)數(shù)
var numSlot = 5;  //一條線上的總節(jié)點(diǎn)數(shù)
var mW = 400;  //Canvas的寬度
var mCenter = mW / 2; //中心點(diǎn)
var mAngle = Math.PI * 2 / numCount; //角度
var mRadius = mCenter - 60; //半徑(減去的值用于給繪制的文本留空間)
//獲取指定的Canvas
var radCtx = wx.createCanvasContext("radarCanvas")

 

//.js  模擬對(duì)戰(zhàn)兩方的數(shù)據(jù)
  data: {
    chanelArray1:[["戰(zhàn)績",88],["生存",30],["團(tuán)戰(zhàn)",66],["發(fā)育",90],["輸出",95],["推進(jìn)",88]],
    chanelArray2: [["戰(zhàn)績", 24], ["生存", 60], ["團(tuán)戰(zhàn)", 88], ["發(fā)育", 49], ["輸出", 46], ["推進(jìn)", 92]]
  },


基礎(chǔ)數(shù)據(jù)準(zhǔn)備完成,開始畫圖

// 第一步:繪制6條邊
 drawEdge: function(){
   radCtx.setStrokeStyle("white")
   radCtx.setLineWidth(2)  //設(shè)置線寬
 for (var i = 0; i < numSlot; i++) {
 //計(jì)算半徑
     radCtx.beginPath()
 var rdius = mRadius / numSlot * (i + 1)
 //畫6條線段
 for (var j = 0; j < numCount; j++) {
 //坐標(biāo)
 var x = mCenter + rdius * Math.cos(mAngle * j);
 var y = mCenter + rdius * Math.sin(mAngle * j);
       radCtx.lineTo(x, y);
     }
     radCtx.closePath()
     radCtx.stroke()
   } 
 },


 

// 第二步:繪制連接點(diǎn)
  drawLinePoint:function(){
    radCtx.beginPath();
 for (var k = 0; k < numCount; k++) {
 var x = mCenter + mRadius * Math.cos(mAngle * k);
 var y = mCenter + mRadius * Math.sin(mAngle * k);

      radCtx.moveTo(mCenter, mCenter);
      radCtx.lineTo(x, y);
    }
    radCtx.stroke();
  },


 

 

//第三步:繪制文字(文字位置可能需要微調(diào))
    drawTextCans: function (mData){

      radCtx.setFillStyle("white")
      radCtx.font = 'bold 17px cursive' //設(shè)置字體
 for (var n = 0; n < numCount; n++) {
 var x = mCenter + mRadius * Math.cos(mAngle * n);
 var y = mCenter + mRadius * Math.sin(mAngle * n);
 // radCtx.fillText(mData[n][0], x, y);
 //通過不同的位置,調(diào)整文本的顯示位置
 if (mAngle * n >= 0 && mAngle * n <= Math.PI / 2) {
          radCtx.fillText(mData[n][0], x+5, y+5);
        } else if (mAngle * n > Math.PI / 2 && mAngle * n <= Math.PI) {
          radCtx.fillText(mData[n][0], x - radCtx.measureText(mData[n][0]).width-7, y+5);
        } else if (mAngle * n > Math.PI && mAngle * n <= Math.PI * 3 / 2) {
          radCtx.fillText(mData[n][0], x - radCtx.measureText(mData[n][0]).width-5, y);
        } else {
          radCtx.fillText(mData[n][0], x+7, y+2);
        }

      }
    },


 

//繪制紅色數(shù)據(jù)區(qū)域(數(shù)據(jù)和填充顏色)
  drawRegion: function (mData,color){
 
      radCtx.beginPath();
 for (var m = 0; m < numCount; m++){
 var x = mCenter + mRadius * Math.cos(mAngle * m) * mData[m][1] / 100;
 var y = mCenter + mRadius * Math.sin(mAngle * m) * mData[m][1] / 100;

      radCtx.lineTo(x, y);
      }
      radCtx.closePath();
      radCtx.setFillStyle(color)
      radCtx.fill();
    },


 

//畫點(diǎn)
    drawCircle: function(mData,color){
 var r = 3; //設(shè)置節(jié)點(diǎn)小圓點(diǎn)的半徑
 for(var i = 0; i<numCount; i ++){
 var x = mCenter + mRadius * Math.cos(mAngle * i) * mData[i][1] / 100;
 var y = mCenter + mRadius * Math.sin(mAngle * i) * mData[i][1] / 100;

          radCtx.beginPath();
          radCtx.arc(x, y, r, 0, Math.PI * 2);
          radCtx.fillStyle = color;
          radCtx.fill();
        }
    }

 


重復(fù)四五步的方法添加另一方的雷達(dá)圖

 

.js文件完整內(nèi)容如下



var numCount = 6;
var numSlot = 5;
var mW = 400;
var mH = 400;
var mCenter = mW / 2; //中心點(diǎn)
var mAngle = Math.PI * 2 / numCount; //角度
var mRadius = mCenter - 60; //半徑(減去的值用于給繪制的文本留空間)
//獲取Canvas
var radCtx = wx.createCanvasContext("radarCanvas")


Page({

 /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {
 stepText:5,
 chanelArray1:[["戰(zhàn)績",88],["生存",30],["團(tuán)戰(zhàn)",66],["發(fā)育",90],["輸出",95],["推進(jìn)",88]],
 chanelArray2: [["戰(zhàn)績", 24], ["生存", 60], ["團(tuán)戰(zhàn)", 88], ["發(fā)育", 49], ["輸出", 46], ["推進(jìn)", 92]]
  },

 /**
   * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
   */
  onReady: function () {

 //雷達(dá)圖
 this.drawRadar()

  },
 // 雷達(dá)圖
  drawRadar:function(){
 var sourceData1 = this.data.chanelArray1
 var sourceData2 = this.data.chanelArray2

 //調(diào)用
 this.drawEdge()
 this.drawLinePoint()
 //設(shè)置數(shù)據(jù)
 this.drawRegion(sourceData1,'rgba(255, 0, 0, 0.5)') //第一個(gè)人的
 this.drawRegion(sourceData2, 'rgba(255, 200, 0, 0.5)') //第二個(gè)人
 //設(shè)置文本數(shù)據(jù)
 this.drawTextCans(sourceData1)
 //設(shè)置節(jié)點(diǎn)
 this.drawCircle(sourceData1,'red')
 this.drawCircle(sourceData2,'yellow')
 //開始繪制
    radCtx.draw()
  },
 // 繪制6條邊
  drawEdge: function(){
    radCtx.setStrokeStyle("white")
    radCtx.setLineWidth(2)  //設(shè)置線寬
 for (var i = 0; i < numSlot; i++) {
 //計(jì)算半徑
      radCtx.beginPath()
 var rdius = mRadius / numSlot * (i + 1)
 //畫6條線段
 for (var j = 0; j < numCount; j++) {
 //坐標(biāo)
 var x = mCenter + rdius * Math.cos(mAngle * j);
 var y = mCenter + rdius * Math.sin(mAngle * j);
        radCtx.lineTo(x, y);
      }
      radCtx.closePath()
      radCtx.stroke()
    } 
  },
 // 繪制連接點(diǎn)
  drawLinePoint:function(){
    radCtx.beginPath();
 for (var k = 0; k < numCount; k++) {
 var x = mCenter + mRadius * Math.cos(mAngle * k);
 var y = mCenter + mRadius * Math.sin(mAngle * k);

      radCtx.moveTo(mCenter, mCenter);
      radCtx.lineTo(x, y);
    }
    radCtx.stroke();
  },
 //繪制數(shù)據(jù)區(qū)域(數(shù)據(jù)和填充顏色)
  drawRegion: function (mData,color){
 
      radCtx.beginPath();
 for (var m = 0; m < numCount; m++){
 var x = mCenter + mRadius * Math.cos(mAngle * m) * mData[m][1] / 100;
 var y = mCenter + mRadius * Math.sin(mAngle * m) * mData[m][1] / 100;

      radCtx.lineTo(x, y);
      }
      radCtx.closePath();
      radCtx.setFillStyle(color)
      radCtx.fill();
    },

 //繪制文字
    drawTextCans: function (mData){

      radCtx.setFillStyle("white")
      radCtx.font = 'bold 17px cursive' //設(shè)置字體
 for (var n = 0; n < numCount; n++) {
 var x = mCenter + mRadius * Math.cos(mAngle * n);
 var y = mCenter + mRadius * Math.sin(mAngle * n);
 // radCtx.fillText(mData[n][0], x, y);
 //通過不同的位置,調(diào)整文本的顯示位置
 if (mAngle * n >= 0 && mAngle * n <= Math.PI / 2) {
          radCtx.fillText(mData[n][0], x+5, y+5);
        } else if (mAngle * n > Math.PI / 2 && mAngle * n <= Math.PI) {
          radCtx.fillText(mData[n][0], x - radCtx.measureText(mData[n][0]).width-7, y+5);
        } else if (mAngle * n > Math.PI && mAngle * n <= Math.PI * 3 / 2) {
          radCtx.fillText(mData[n][0], x - radCtx.measureText(mData[n][0]).width-5, y);
        } else {
          radCtx.fillText(mData[n][0], x+7, y+2);
        }

      }
    },
 //畫點(diǎn)
    drawCircle: function(mData,color){
 var r = 3; //設(shè)置節(jié)點(diǎn)小圓點(diǎn)的半徑
 for(var i = 0; i<numCount; i ++){
 var x = mCenter + mRadius * Math.cos(mAngle * i) * mData[i][1] / 100;
 var y = mCenter + mRadius * Math.sin(mAngle * i) * mData[i][1] / 100;

          radCtx.beginPath();
          radCtx.arc(x, y, r, 0, Math.PI * 2);
          radCtx.fillStyle = color;
          radCtx.fill();
        }

      }

})

 

電話咨詢 預(yù)約演示 0元開店
主站蜘蛛池模板: 亚洲综合中文网|www.=av免费观看|成人免费乱码大片=a毛片软件|男人操女人逼视频网站|国产精品99爱免费视频|蜜臀=av网址 | 人人干狠狠操|欧美日韩xxxx|日本成人在线看|四虎影院免费在线|成人黄色亚洲|两个人看的www高清视频 | 岛国午夜视频一区三区|欧美成人免费一级|加勒比中文字幕无码一区|亚洲中文字幕在线乱码|草久=av|国产区一区 | 亚洲第8页|亚洲精品第六页|欧美激情免费在线|69堂精品|妇女一级片|日韩视频观看 | 吃奶大尺度无遮挡激情做爰|成人公开免费视频|日本娇小枯瘦xxxx|超碰95在线|精品伦理一区二区三区|久久国产精品区 | 爱情到此为止在线观看|精品热99|老熟女多次高潮露脸视频|91国偷自产一区二区三区老熟女|美女久久久久久久久|高潮VPSWINDOWS国产乱 | 99爱在线免费观看|亚洲日韩欧美精品国产|色婷婷偷拍|日本人jizz亚洲人|国产在线线精品宅男网址|午夜内射中出视频 | 在线看免费观看=av|十九岁大学生日本在线播放|91在线看视频|欧美日韩国产综合新一区|韩日黄色毛片|刘亦菲精品国产亚洲人成 | 新91在线视频|蜜臂精品国产高清在线观看|日韩国产黄色片|亚洲精品永久入口|国产成人午夜福利免费无码R|欧美不卡一区二区三区 | 最新国产精品毛片在线|和少妇做爰3p视频|www.youjizz.com在线观看|成人在线观看国产|成人久久精品|免费观看h视频 | АⅤ天堂中文在线网|人人澡人人澡人人看欧美|高H喷水荡肉爽文NP肉色学校|日韩一二三区不卡在线视频|欧美在线观看www|中文字幕一区二区三区5566 | 国产最新网站|亚洲美女一区|亚洲V欧美V国产V在线观看|国产精品乱码久久久久久1区2区|大地影视资源在线观看|国产精品扒开腿做爽爽爽日本无码 | 亚洲激情在线观看视频|一区二区和激情视频|亚洲男人的天堂色偷免费|女人被爽到高潮视频|久操社区|亚洲无色 | 国产精品视频最多的网站|韓國三級大全久久網站|日韩推理片免费观看|60岁老女人高潮表现|日本免费专区|亚洲第一成人在线观看 | yell视频在线观看免费|www.三级影片.com|午夜啪啪片|色爱亚洲|顶级欧美熟妇高潮xxxxx|紧缚调教一区二区三区视频 | 激情综合欧美|日本一区欧美|97色伦欧美一区二区日韩|国产东北女人做受=av|又色又爽又黄又粗暴的小说|中文字幕无码日韩欧毛 | 91在线在线观看|超碰97在线人人|精品粉嫩BBWBBZBBW|成人深夜小视频|午夜爱爱影院|日日干日日操日日射 | 亚洲欧美又粗又长久久久|精品一区二区久久久|亚州精品在线视频|日韩国产成人精品|91=av导航|国产亚州精品视频 | 免费无码又爽又刺激高潮的动漫|欧美日日日|亚洲=aV无码一区二区三区在线播放|国产九九=av|中文字幕无码视频专区|中文字幕一区二区三区手机版 | 丁香五月好婷婷深深爱|欧美、另类亚洲日本一区二区|www.com国产|免费观看又色又爽又湿的视频软件|国产一级生活片|一级黄色故事片 | АⅤ天堂中文在线网|人人澡人人澡人人看欧美|高H喷水荡肉爽文NP肉色学校|日韩一二三区不卡在线视频|欧美在线观看www|中文字幕一区二区三区5566 | 日韩片网站|久久一区二区=av|亚洲精品一区二区三区新线路|尤物tv|懂色中文一区二区三区在线视频|国产乱淫=av公 | 成人一区二区三区免费视频|日本=a=a=a=a片毛片免费观蜜桃|在线观看亚洲欧美|日本一夲道无码不卡免费视频|穿乳环蒂环上锁调教老师|国产成人综合一区二区三区 | 宅男噜噜噜66国产在线观看|色姑娘综合|99久久久国产精品日本久久区一|亚洲成人自拍网|国产亚洲精品第一综合另类|精品亚洲一 | xxxx高清|亚洲日本乱码在线观看|日三级另类|久久久一|www.国产com|欧美不卡一区二区三区四区 | chinese一区二区|亚洲国产综合在线播放=av66|午夜视频=a|99热这里|夜夜操影院|#NAME? | 神马午夜羞羞=aV|国产黄色=a级|无码=av专区丝袜专区|国内精品久久久久久久久长长|久久乐=av|99久久精品一区二区成人 | 三级国产99久久|#NAME?|亚洲第7页|贪婪欲望之岛在线|97爱亚洲|国产精品偷乱一区二区三区 | 中国一级毛片在线视频|99在线观看免费视频|亚洲九九热|www.精品国产|亚洲www久久久|欧美白浆视频 | 亚洲欧洲国产视频|麻豆视频xxx|日本在线观看一区|亚洲成=aV人片无码不卡播放器|麻豆性生活视频|欧美视频一区二区三区四区 日韩网站中文字幕|国产精品入口在线观看|少妇高潮喷水久久久影院|丰满爆乳无码一区二区三区|一区二区日本在线|婷婷777 | 国产白丝喷水娇喘视频|亚洲短视频在线观看|欧美全黄|久久夫妻视频|日韩高清无码免费|2020久久精品亚洲热综合一本 | 3级黄色|最新在线精品国自产拍视频|干日本少妇视频|91九色免费视频|一级免费在线观看|狠狠干超碰 | 亚洲精品网站在线观看|国产精品美女久久福利网站|久久xxxx|亚洲精品精品|国产激情99|国产高清无码日韩一区 | 国产在线xxx|夜夜摸夜夜添夜夜添破|老老熟妇XxXXHD|91国内视频|国产一二级片|久久公开免费视频 | 国产乱妇乱子在线播视频播放网站|国产免费人成在线视频|精品欧洲=av无码一区二区14|精品少妇一区二区三区在线观看|播放一区二区|国产精品久久久久久久久无码日本蜜乳 | 丰满人妻熟妇乱又伦精品|黑白配高清国语免费观看|#NAME?|亚洲视频高清不卡在线观看|99ri=av国产在线观看|丝袜美腿视频一区二区三区 | 国产V精品无码好舒服欧美精品|一本之道亚洲|亚在线观看免费视频入口|成人学院中文字幕|国产精品成人观看视频网站|欧洲成在人线视频免费 | 亚洲专区第一页|少妇高潮一区二区三区|四虎影院www.|在线精品视频一区二区三四|手机看片福利久久|亚洲=av成人网 | 欧美人人|91精品久久久久久综合|日本一区二区三区视频视频|欧美老熟妇乱子伦视频|91精品国产99久久久久|国产不卡三区 | 狂野=aV人人澡人人添|天天干夜夜擦|两个人的www免费高清视频|永久免费看mv网站入口亚洲|久久一区二区三区四区|亚洲男人网 | 永久免费的啪啪网站免费观看浪潮|#NAME?|被按摩的人妻中文字幕|国产资源在线看|人人看人人射|免费看又黄又爽又猛的视频软件 |