计算一维数组中2个像元之间的距离

问题描述

我有一个一维数组。每个数组位置对应一个单元格。

private Cell[] _cells = new Cell[size];

我还有放置这些单元格的网格的尺寸。

private Vector2 _gridSize = new Vector2(x,y);

仅此而已,我就必须计算两个不同索引之间有多少个单元格(请参阅图像以直观地看到我所指的内容)。我必须计算哪个操作?

示例图片

Example image >

搜索结果

Searched result >

谢谢社区!

编辑:这种关系类似于下面的示例。

Array { 0,1,2,3,4,5 }

Dimentions { x = 3,y = 2 }

Grid :
| 0 | 1 | 2 |
| 3 | 4 | 5 |

解决方法

如果diffX是第一个和第二个单元格的X坐标之差的绝对值,而diffY是第一个和第二个单元格的Y坐标之差的绝对值单元格,您的答案是result = diffX + diffY

如果要查找值a所在的单元格的(X,Y)坐标, 给定x作为行数,给y作为列数, 您可以使用以下简单算法:

for (i=0; i < sizeOfArray; i++){
    if (array[i] == a){
        yOfA = i // x;
        xOfA = i % x;
    } 
}

请记住,xOfA代表a所在的列,而yOfA是您在问题中所显示的行。