簡體   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