2015-11-11 49 views
1

我有點困惑,因爲我已經測試了幾個算法來計算z索引和(8,8,8)我得到3584和(7,7,7)我得到511,這是正確的。問題是8 * 8 * 8 = 512,但z-index是3584.這意味着如果我使用一維數組來存儲z-index的東西,我不會使用更多的空間,並且會有空數組中的插槽?同樣,7 * 7 * 7 = 343,小於511.如果您在維基百科頁面查看z-indexing/Morton編碼,您會發現一個二維示例,其索引爲x和y,索引爲0到7.然而,最大的z-index是111111,它是63,當從0開始編號時,它恰好是第64個元素,所以它不會佔用比存儲64個元素所需的更多的空間。這裏有什麼不對嗎?Morton編碼Z索引空間使用

感謝

回答

-1

事實證明,當你有Z-索引,最終指數將只有在座標上的兩個立方的功率的邊緣等於普通索引的索引。 (7,7,7)的z指數爲511的原始問題與8 * 8 * 8 = 512的事實相一致。考慮到包含0的座標,(7,7,7)確實是8^3指數。 (3,3,3)的z-索引可以如下計算。在二進制中,(3,3,3)是(011,011,011)通過交織位,二進制中的z-索引是000111111.這個十進制的值是63.令我困惑的是3 * 3 * 3只等於27 ,我想知道爲什麼我需要一個大於27的索引,剩下一些索引不用於3x3x3的立方體。後來我發現這就是z索引的工作原理。只有邊的長度等於2的完美冪的立方體,每個z-索引的座標是< =(x,y,z)