[英]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.