我看了这个问题: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)
当我在两种方法之间测试时,我得到了错误的结果。我的方法有明显的错误吗?什么是正确的解释?
答案 0 :(得分: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);