给定值:


宽度和高度相等
所有单元格大小相同
独立于单元的随机点(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;

最佳答案

这应该为您工作。

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

关于java - 用随机点计算单元格在网格中的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37821253/

10-09 01:35