2012-05-23 45 views
0

我有一個3名維陣列是這樣的(而不是0的I有對象):如何旋轉3名維陣列的ActionScript 3

var array:Array = 
    [ 
    [ 
     [0,0],[0,0],[0,0] 
    ], 
    [ 
     [0,0],[0,0],[0,0] 
    ], 
    [ 
     [0,0],[0,0],[0,0] 
    ], 
    [ 
     [0,0],[0,0],[0,0] 
    ] 
    ]; 

每個數組位置包含放置在3D空間中,並找到它的對象你只需要:array [zPos] [yPos] [xPos]。

它有一個庫或函數,允許我在Z​​軸,Y軸和/或X軸上旋轉陣列90度?

注意:記住數組可能是不規則的。

編輯:

我不認爲我已經說清楚了。我不想在3D空間中移動物體,我只想知道它們在那裏。我想做什麼來操作陣列。

我發現我的問題的部分解決方案,但我相信它可以進行優化。我開發了一個公式來旋轉Z軸上的多個陣列。這裏是代碼:

var arr1:Array = 
[ 
    [ 
     [ 0, 1, 2, 3], 
     [010, 011, 012, 013] 
    ], 
    [ 
     [100, 101, 102, 103], 
     [110, 111, 112, 113] 
    ], 
    [ 
     [200, 201, 202, 203], 
     [210, 211, 212, 213] 
    ] 
]; 
var arr2:Array = new Array; 

for (var i:int = 0; i < arr1.length; i++) 
{ 
    arr2.push(new Array); 
    for (var j:int = 0; j < arr1[i][0].length; j++) 
    { 
     arr2[i].push(new Array); 
     for (var k:int = 0; k < arr1[i].length; k++) 
     { 
      arr2[i][j].push(0); 
     } 
    } 
} 

for (i = 0; i < arr1.length; i++) 
{ 
    for (j = 0; j < arr1[i].length; j++) 
    { 
     for (k = 0; k < arr1[i][j].length; k++) 
     { 
      arr2[i][k][arr1[i].length - j - 1] = arr1[i][j][k]; 
     } 
    } 
} 

你知道庫的其他公式來旋轉Y或X軸的多個數組嗎? 非常感謝我的英語

+0

我不太確定你想達到什麼目的,但我敢肯定你可以用away3d來做到這一點:http:// away3d。 com/- 你會把所有的對象放在一個3d容器中,然後旋轉它。 – davivid

回答

0

我相信你需要重新考慮你的設計。把對象放在這樣的數組中,並試圖旋轉它們將是一個明確的性能殺手。

對於多維數組旋轉,整數或數字,正確的方法是使用旋轉矩陣。你會發現許多流行的動作引擎,如alternativa3d,away3d等3D操作的功能。