А как задается матрица изначально? Вложенные массивы? Один массив упакованный каким-нибудь интересным способом например:

Код AS3:
function itemAt(x, y):Object {
return this._array[y * this._width + x];
}
или

Код AS3:
function itemAt(x, y):Object {
return this._array[this.cantorDiagonal(x, y)];
}
И их есть еще. В зависимости от подхода, естесственно, могут быть разные решения.
http://stackoverflow.com/questions/4...ensional-array кстати, тут есть интересное решение (в третьем ответе), где задается класс матрицы а при вращении меняется коеффициент в зависимости от которог индексы через которые идет обращение к элементам матрицы преобразуются к нужному виду, что делает вращение O(1) операцией вообще
