美好的一天
我遇到了数学问题,可能是因为睡眠不足,但我完全不知所措。
我需要根据索引找到x和y坐标。
所以我知道网格的宽度,高度和索引。但我不知道X和Y坐标。我需要建立一个公式来获取数据。
例如。我知道指数9.通过一个公式,我需要能够得到X的数字4和Y的数字
int numOfRows = 4
int numOfCols = 5
int index = 13
int X = ?
int Y = ?
//perform math magic
x = 4
y = 3
答案 0 :(得分:1)
如果用0开始计数,那就容易多了:
| 0 1 2 3 4
-----------------
0| 0 1 2 3 4
1| 5 6 7 8 9
2|10 11 12 13 14
3|...
4|
让a
为网格中的数字,numberOfCols
为列数(本例中为5)。
在这种情况下,很明显可以看到
a / numberOfCols
(没有余数)和a modulo numberOfCols
。您可以通过在生成的行/列号中添加1来减少您的情况。
答案 1 :(得分:1)
这很简单:
public static void foo(int i) {
int x = i % 5 + 1;
int y = i / 5 + 1;
}