如何将文件编号与矩阵中的坐标信息相关联?

时间:2016-05-19 14:41:44

标签: java matrix coordinates raster

我有一个尺寸宽度= 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

1 个答案:

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