2016-06-14 193 views
0

鉴于值:计算位置

  • 宽和高相等

  • 所有单元具有相同的大小

  • 的随机点( xy),独立于细胞

  • cellX,cellY可以是负数

例子:

pointX = 20; 
pointY = 40; 

cellDefaultSize = 32; 

结果:

cellX = 0; 
cellY = 32; 

我没有试戴

cellX = pointX - pointX % cellDefaultSize; 

用数学解决任何?

编辑:

我以前的作品只为阳性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; 
+0

是最左下角的单元格cellX = 0; cellY = 0'? – intboolstring

+0

cellX/Y可以是负数 –

回答

1

这应该为你工作。

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

不是我在寻找的东西我更新了我的问题。 –