如何解决计算一维数组中2个像元之间的距离
我有一个一维数组。每个数组位置对应一个单元格。
private Cell[] _cells = new Cell[size];
我还有放置这些单元格的网格的尺寸。
private Vector2 _gridSize = new Vector2(x,y);
仅此而已,我就必须计算两个不同索引之间有多少个单元格(请参阅图像以直观地看到我所指的内容)。我必须计算哪个操作?
谢谢社区!
编辑:这种关系类似于下面的示例。
Array { 0,1,2,3,4,5 }
Dimentions { x = 3,y = 2 }
Grid :
| 0 | 1 | 2 |
| 3 | 4 | 5 |
-
5
和2
之间的距离为1
。 -
5
和4
之间的距离为1
。 -
0
和2
之间的距离为2
。
解决方法
如果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
是您在问题中所显示的行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。