假設我有一個5x5的網格,網格中的每個單元格都從0到24編號,從左到右。給定一個像17這樣的單元格編號,我如何確定單元格的x和y座標?我已經能夠做到這一點,反之亦然,其中如果有座標我可以計算出細胞數量:將網格中按順序指定的數字轉換爲x-y座標
Cellnumber = x + y∗width
(x和y座標表示每個單元的左上點)
但現在我想要相反。有任何想法嗎?
假設我有一個5x5的網格,網格中的每個單元格都從0到24編號,從左到右。給定一個像17這樣的單元格編號,我如何確定單元格的x和y座標?我已經能夠做到這一點,反之亦然,其中如果有座標我可以計算出細胞數量:將網格中按順序指定的數字轉換爲x-y座標
Cellnumber = x + y∗width
(x和y座標表示每個單元的左上點)
但現在我想要相反。有任何想法嗎?
假設爲基礎的0座標和類似C的語法,它會是這樣的:
int y = Cellnumber/width;
int x = Cellnumber % width;
+1。好看又簡潔。 – 2011-04-21 23:34:15
隨着表示法%
是模運算符:
x = Cellnumber % width
y = Floor(Cellnumber/width)
在你的5×5示例
所以,Cellnumber
= 17
x = 2
y = 3
我喜歡它,但如果其中一人需要地板,他們都做,或者:-)同樣沒有 – corsiKa 2011-04-21 23:27:33
@ glowcoder:模運算符通常是一個整數運算符...但我明白你的觀點。 – 2011-04-21 23:28:57
0-24 ...不是0..25 – 2011-04-21 23:24:45
燁固定:) ... – Snowman 2011-04-21 23:28:12