2012-05-23 4 views
0

У меня есть массив 3-х измерениях, как это (вместо 0 'У меня есть объекты):Как плести 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].

Есть ли библиотека или функция, которая позволяет мне вращать массив на 90 градусов по оси Z, Y и/или X?

Примечание: помните, что массив может быть нерегулярным.

EDIT:

Я не думаю, что я сделал себе ясно. Я не хочу перемещать объекты в трехмерном пространстве, я только хочу знать, что они есть. Что я хочу сделать, чтобы работать с массивом.

Я нашел частичное решение проблемы, но считаю, что ее можно оптимизировать. Я разработал формулу для вращения массива по оси 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

Я считаю, что вам нужно пересмотреть свой дизайн. Помещение объектов в подобный массив и попытка их вращения будут определенными убийцами производительности.

Для многомерных массивов, целых чисел или чисел, правильный способ - использовать матрицу вращения. Вы найдете функции для 3D-операций, подобных этим во многих популярных движках actioncript, таких как alternativa3d, away3d и т. Д.

Смежные вопросы