我有一个尺寸宽度= 155且高度= 175的图像raster
。每个像素坐标都与一个数字相关联,这意味着(1,1)
是1
,(1,155)
是155和(175,155)
是27125.给定一个数字,我如何找到坐标(x,y)
?我在Java
工作。
较小的矩阵宽度= 3高度= 4
1 2 3
1,1 1,2 1,3
4 5 6
2,1 2,2 2,3
7 8 9
3,1 3,2 3,3
10 11 12
4,1 4,2 4,3
答案 0 :(得分:0)
这样的事情应该有效:
private int X_SIZE = 155;
public int getX(int position) {
return position % X_SIZE; // Starts from 0
}
public int getY(int position) {
return position / X_SIZE; // starts from 0
}
其中155是x大小的维度。
想象一下,矩阵为3 x 5. X_SIZE
为3。
这是矩阵总数
X
Y 0 1 2
----------------
0 | 0 1 2
1 | 3 4 5
2 | 6 7 8
3 | 9 10 11
4 |12 13 14
以下是一些价值观:
getX(0) = 0 % 3 = 0
getY(0) = 0 / 3 = 0
getX(1) = 1 % 3 = 1
getY(1) = 1 / 3 = 0
getX(8) = 8 % 3 = 2
getY(8) = 8 / 3 = 2
getX(12) = 12 % 3 = 0
getY(12) = 12 / 3 = 4
这项工作是使用基于0的x和y计算,并从0开始填充数组。
要为x和y设置1,从1开始填充数组,需要更改以下函数:
private int X_SIZE = 155;
public int getX(int position) {
return (position - 1) % X_SIZE + 1; // Starts from 1
}
public int getY(int position) {
return (position - 1) / X_SIZE + 1; // starts from 1
}
以下是与以前相同的例子:
X
Y 1 2 3
----------------
1 | 1 2 3
2 | 4 5 6
3 | 7 8 9
4 |10 11 12
5 |13 14 15
以下是一些价值观:
getX(1) = (1 - 1) % 3 + 1 = 1
getY(1) = (1 - 1) / 3 + 1 = 1
getX(2) = (2 - 1) % 3 + 1 = 2
getY(2) = (2 - 1) / 3 + 1 = 1
getX(9) = (9 - 1) % 3 + 1 = 3
getY(9) = (9 - 1) / 3 + 1 = 3
getX(13) = (13 - 1) % 3 + 1 = 1
getY(13) = (13 - 1) / 3 + 1 = 5