2016-06-14 85 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

不是我在尋找的東西我更新了我的問題。 –