函数不愿意计算结果,而是分配/留下变量NaN

时间:2015-08-12 21:34:02

标签: javascript jquery

我无法使用函数trajgen()来计算x和y,并且在尝试三天之后我仍然无法找到解决方案。整个程序超过200行,所以我会指责你在以下“有问题”的功能中找到错误的东西。 :) 看看......

function trajgen(){
    $(".reddot").remove();
    x=xo;
    y=yo;
    $(".reddot").css({"top": y, "left": x});
    isin=true;

    while(isin==true){
        x = xo + v0*Math.cos(angle)*time;
        y = yo + v0*Math.sin(angle)*time - 0.5*g*Math.pow(time,2);
        alert("x= "+x);
        alert("y= "+y);

        $("#frames").append('<div class = "reddot" style = "top: '+ y + 'px; left: '+ x +'px;"><img src="red.png" height="10" width="10"></div>');
        time+=1;
        isin=inchecker();
    }
    return;
}

function inchecker(){
    if(y<Dy||y>Ay||x<Dx||x>Bx){ 
        isin = false;
        return isin;
    }
    isin = true;
    return isin;
}

现在,当我提醒x和y时,这个东西会返回NaNs(我知道这意味着什么),对于这两个坐标。另一个有趣的方面是,函数inchecker不会阻止他们离开div之后附加的bug reddot,我将其用作绘制我的轨迹的元素。而不是获得抛物线弧,我得到无限垂直克隆/附加红点。所有其他变量都能正常工作,x,y,xo,yo,speed,time ......等等都是全局变量。 Xo和哟我得到(0; 0)从发射射弹的地方,我发现所有其他变量都运行良好,唯一的问题是那些x和y到目前为止我还没有在其他地方使用过。我给它们分配了零但是现在这并没有改变我的脚本不愿意计算x和y。 #frames是所有这些事情发生的div。请帮助我,并提前致谢。

1 个答案:

答案 0 :(得分:1)

在计算x和y的行上,角度,v0,xo或vo为空或不是数字。

运行一个调试器并逐步执行这些行,然后检查这些值。