1

我有一个由 javascript 中的数组组成的立方体网格。网格尺寸存储在变量中。dim单个立方体的尺寸也是如此,spacing是每个立方体之间的距离(dimspacing以像素表示)。

现在,考虑到我总是可以在变量中拥有用户鼠标位置,g.mouseX为什么g.mouseY这段代码并不总是那么精确?

var j = Math.round(g.mouseX / (dim+spacing));
var i = Math.round(g.mouseY / (dim+spacing));

// user clicked on the cell grid[j][i]

有时我点击一个立方体,但看起来他正在考虑附近的那个。看起来用户点击的整个映射移动了一半dim。可能使用 Math.round 会使一切几乎出错,但是当用户单击我的网格中的精确坐标时,我看不到任何其他方法可以将这种混乱和不可预测的值转换。

希望任何人都可以在这方面提供帮助!

提前致谢...

4

1 回答 1

1

你想要截断,而不是圆形。您可以使用Math.floor, 将(例如)映射3.73

var j = Math.floor(g.mouseX / (dim+spacing));

但实际上,为什么不直接绑定onclick每个网格单元的事件呢?

于 2012-04-28T01:28:23.717 回答