2013-02-13 44 views
0

我看了這個問題:Convert a 1d array index to a 3d array index?但我的測試結果不同,不管我如何計算索引。如何將1d索引轉換爲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) 

當我測試這兩種方法之間,我得到了錯誤的結果。我的方法有什麼明顯的錯誤嗎?什麼是正確的解釋?

回答

2

這裏是一個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); 
+0

不錯,我看比使用「%」更好,更直觀使用的計算值。謝謝! – AAB 2013-02-13 02:12:29

相關問題