繁体   English   中英

1D向量-3D索引

[英]1D vector - 3D indices

我正在使用1D向量表示3D数据结构,索引为0到x * y * z,其中x,y和z是每个方向上的像元数。

为了索引特定单元格[xi] [yi] [zi],我使用:

index = xi + x*yi + x*y*zi ;

我的问题是,我不知道该怎么做!

例如,我想获取索引43中表示的各个坐标。

我想我已经找到了如何获得xi的方法:

xi = index % x ;

但是我不能一辈子都得到别人...:/

编辑:嗯。 这是正确的吗?

xi = index % x;
yi = ((index - xi)/x) % y;
zi = ((index - xi - x*yi) / x) / y ;

尝试这个:

xi =   index % x;
yi =  (index / x) % y;
zi = ((index / x) / y) % z;

正如人们所期望的那样,这很容易概括。

一些模块化算术应该可以解决问题。

    index % x = (xi + x*yi + x*y*zi) % x = xi % x,
    but 0 <= xi < x therefore xi % x = xi.

那么对于yi:

    (index / x) % y = yi.

最后:

    index / (x * y) = zi.

编辑:

在代码中(与上面的数学相反),它将是:

    xi = index % x;
    yi = (index / x) % y;
    zi = index / (x * y);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM