【发布时间】:2011-10-04 02:44:11
【问题描述】:
我正在为 Javascript 编写一个绘图/图形库,但遇到了一个似乎很严重的问题。
我有 4 个数字输入用于定义图形将显示的最小值和最大值,就像在 TI-84 图形计算器上一样:XMin、XMax、YMin, YMax.
<div id="window">
<input type="number" class="bound" id="minX" value="" />
<input type="number" class="bound" id="maxX" value="" />
<br />
<input type="number" class="bound" id="minY" value="" />
<input type="number" class="bound" id="maxY" value="" />
</div>
然后我的代码可以抓取这些值,并在修改它们时将它们放入函数Plot.setBounds(xMin, xMax, yMin, yMax):
var plot1 = new Plot();
$('#window .bound').change(function() {
var minX = $('#window #minX').val(),
maxX = $('#window #maxX').val(),
minY = $('#window #minY').val(),
maxY = $('#window #maxY').val();
console.log('modified to:', minX, maxX, minY, maxY);
plot1.setBounds(minX, maxX, minY, maxY);
plot1.draw();
});
最后,对于Plot.setBounds(xMin, xMax, yMin, yMax) 函数,我有:
Plot.prototype.setBounds = function (xMin, xMax, yMin, yMax) {
if ((xMin < xMax) && (yMin < yMax)) {
this.bounds = [[xMin, xMax], [yMin, yMax]];
} else {
console.error('Plot.setBounds(xMin, xMax, yMin, yMax) requires maximum values that are greater than the minimum values!');
console.log('received:', xMin, xMax, yMin, yMax);
}
return this;
};
但是,当 xMin >= 2 且 xMax >=10 时,会出现问题,因为由于某种原因比较返回 false,因此会向控制台抛出错误。您可以检查错误前后给出的数字(修改为和收到),它们将具有相同的值。
另一个奇特的事实是,当手动将相同数字的计算放入控制台时,比较结果如何返回 true。这让我相信它与函数的调用有关。
有趣的是,该问题仅在 xMin >= 2 和 xMax >= 10 时出现。
我有一个预览,你可以在这里测试:http://dl.dropbox.com/u/962292/web/plot.js/static.html
如果您能为我的情况找到解决方案,我将不胜感激。
【问题讨论】:
标签: javascript graph comparison plot