寻找X& Y基于指数

时间:2017-12-23 09:37:07

标签: math

美好的一天

我遇到了数学问题,可能是因为睡眠不足,但我完全不知所措。

我需要根据索引找到x和y坐标。

所以我知道网格的宽度,高度和索引。但我不知道X和Y坐标。我需要建立一个公式来获取数据。

例如。我知道指数9.通过一个公式,我需要能够得到X的数字4和Y的数字

enter image description here

int numOfRows = 4
int numOfCols = 5
int index = 13

int X = ?
int Y = ?


//perform math magic
x = 4
y = 3

2 个答案:

答案 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;
}