0

我看了这个问题:Convert a 1d array index to a 3d array index? 但是无论我首先如何计算索引,当我测试它时,我的结果都会有所不同。

我正在使用以下内容将尺寸(宽度、高度、深度)的 3d (x,y,z) 转换为 1d:

i=x+WIDTH(y+HEIGHT*z)

然后从索引 i 转换回 (x,y,z):

z=i/(HEIGHT*WIDTH)
y=(i/WIDTH)%HEIGHT
x=i%(WIDTH)

当我在两种方法之间进行测试时,我得到了错误的结果。我的方法明显有问题吗?正确的解释是什么?

4

1 回答 1

3

这是一个适用于这些值的 javascript 版本:

WIDTH = 10;
HEIGHT = 20;

x = 2;
y = 4;
z = 5;

=> i = 1042

代码:

i = x + WIDTH * (y + HEIGHT * z);


z = Math.round(i / (WIDTH * HEIGHT));
y = Math.round((i - z * WIDTH * HEIGHT) / WIDTH);
x = i - WIDTH * (y + HEIGHT * z);
于 2013-02-13T01:47:42.960 回答