使用随机点计算网格中单元格的位置

时间:2016-06-14 20:13:00

标签: java math

给定值:

  • 宽度和高度相等

  • 所有单元格大小相同

  • 随机点(x y),独立于细胞

  • cellXcellY可以是否定的

示例:

pointX = 20;
pointY = 40;

cellDefaultSize = 32;

结果:

cellX = 0;
cellY = 32;

我确实尝试过 -

cellX = pointX - pointX % cellDefaultSize;

使用Math的任何解决方案?

编辑:

我使用的公式仅适用于正pointX / pointY。如果pointX / Y为负数,则单元格将完全取代我期望的cellDefaultSize

我找到了一个使用if语句的解决方案 -

if (x < 0) cell.x = x - x % cellSize - cellSize;
else cell.x = x - x % cellSize;

if (y < 0) cell.y = y - y % cellSize - cellSize;
else cell.y = y - y % cellSize;

1 个答案:

答案 0 :(得分:1)

这应该适合你。

cellX = Math.floor(pointX/cellDefaultSize);
cellY = Math.floor(pointY/cellDefaultSize);