云木one 2019-09-20 15:31 采纳率: 0%
浏览 916

怎么把js函数的参数变成全局变量,用到后面的函数中运算

通过函数计算得到gwp的数值,如果转化成全局变量值,用到后面的绘图函数中

var gwp1=[];
$(function(){
var dom = document.getElementById("box4");
var myChart = echarts.init(dom);
var app = {};
option = null;
var y_f = [];
//全局变量,wgid在gognweizongtu.js中获取
var gwp = 0;
var xishu = [0.4,0.2,0.3,0.1];
var pjx = ["gzp","gyp","wlp","ryp"];
var pj = {"gongzhuang":"OK", "gongyi": "OK", "wuliao": "OK", "renyuan": "OK"};
var guige = [90, 90, 80, 75,85];
var xiang = ["gongzhuang","gongyi","wuliao","renyuan"];
for (var i = 0 ; i< xiang.length ; i++) {
    var lent = data[xiang[i]].y.length ;
    var ind = lent - 1 ;
    y_f.push(data[xiang[i]].y[ind]);
    if (data[xiang[i]].y[ind] < guige[i]){
        pj[xiang[i]] = "NOK";
    }
    document.getElementById(pjx[i]).innerHTML = pj[xiang[i]];
    gwp += y_f[i]*xishu[i];
}
y_f.push(88);
if (gwp > 85.5){
    document.getElementById("gwpj").innerHTML ="OK";
}
gwp = gwp.toFixed(2);
/*绘图代码省略*/
};
if (option && typeof option === "object") {
    myChart.setOption(option, true);
}
})

上部分代码得到gwp的数值,如何用到后面的画圆代码
darwPro("myCanvas",gwp/100);,画圆时老是提示gwp值为空

<!-- 圆弧绘制-->
    //画圆方法
             function drawArc(canvas,begin,end,color)
              {

                     canvas.beginPath();

                     canvas.lineWidth = 6;

                     canvas.fillStyle = "#ffffff";

                     canvas.strokeStyle = color;

                     canvas.arc(48, 48, 40, begin,end);

                     canvas.fill();

                     canvas.stroke();

                     canvas.closePath();


              }

             //添加文字方法
              function drawWord(canvas,text){
                canvas.font = 'bold 20px arial';
                canvas.fillStyle = 'red';
                canvas.fillText(text, 30,53);
              }

              //每100毫秒画一次,300毫秒完成
              function darwPro(id,rate){

                //获取画布对象
                var canvasID = document.getElementById("myCanvas");
                var canvas = canvasID.getContext("2d");

                 window.alert(rate);

                //先画背景
                 drawArc(canvas,-0.5*Math.PI,1.5*Math.PI,"#EDEDED");

                //setInterval()函数至少执行一次(当rate为零时直接返回)
                 if(rate == 0){
                   return;
                 }

                //为了体现动态图使用分段画图的策略
                 var begin = -0.5*Math.PI;//起始角度
                 var end = 2*Math.PI*rate-0.5*Math.PI;//结束角度
                 var add = 2*Math.PI*rate/10;//分段的增量

                 //分10次完成每次间隔50毫秒
                 var sid = setInterval(function(){
                   if(begin >= end){
                      clearInterval(sid);
                      return;//此处必须return;因为即使clearInterval,函数仍然会执行一次导致比例不准确
                   }
                   drawArc(canvas,begin, begin + add,"green");
                   //下次起始位置置为上次结束的位置
                   begin = begin + add;            
                 }, 50);

                 //显示百分比的文字
                 drawWord(canvas,rate*100 + "%");
              }
              darwPro("myCanvas",gwp/100);
  • 写回答

5条回答 默认 最新

  • qq_40750668 2019-09-20 15:37
    关注

    没看代码,不可以建一个全局变量,然后把值给他,再用这个变量参与后面的计算吗

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码