![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Добрый день всезнающие, многоуважаемые и любимые тов. по Flash.
У меня к Вам маленький вопрос: есть массив фигуры кпримеру такое: Мне надо его повернуть по часовой стредке, относительно центра этой фигуры. Сначала делаю просто поворот (относительно (0,0)) public function matrixRotation (arr:Array):Array {
var arr_:Array = arr.concat();
var arr_length:Number = arr.length;
for (var i=0;i<arr_length;i++) {
trace("перставляем элемент");
var i_element = arr_[i][0];
arr_[i][0] = arr[i][1];
arr_[i][1] = i_element;
}
return arr_;
}
Товарищи. как это сделать?
__________________
Flash в крови Последний раз редактировалось Скрипун; 21.01.2008 в 22:23. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
function matrixRotation (arrayA:Array):Array {
var arrayB:Array = arrayA.concat ();
var len:Number = arrayB.length;
var lenH:Number = Math.floor (len / 2);
for (var i:Number = 0; i < len; i++) {
arrayB[i].reverse ();
}
for (var i:Number = 0; i < lenH; i++) {
var array:Array = arrayB[i];
arrayB[i] = arrayB[len - i - 1];
arrayB[len - i - 1] = array;
}
return arrayB;
}
function echo (a) {
for (var i:Number = 0; i < a.length; i++) {
trace (a[i]);
}
trace ("");
var b = matrixRotation (a);
for (var i:Number = 0; i < b.length; i++) {
trace (b[i]);
}
trace ("------------------------");
}
echo ([[1, 2], [3, 4]]);
echo ([[1, 2], [3, 4], [5, 6], [7, 8]]);
echo ([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
echo ([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]);
|
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
function matrixRotation (arrayA:Array):Array {
var arrayB:Array = new Array ();
var len:Number = arrayA[0].length;
for (var i:Number = 0; i < len; i++) {
arrayB[i] = new Array ();
for (var j:Number = 0; j < arrayA.length; j++) {
arrayB[i][j] = arrayA[j][i];
}
arrayB[i].reverse()
}
return arrayB;
}
|
|
|||||
function matrixRotation (arrayA:Array):Array {
var arrayB:Array = new Array ();
var len:Number = arrayA[0].length;
for (var i:Number = 0; i < len; i++) {
arrayB[i] = new Array ();
for (var j:Number = 0; j < arrayA.length; j++) {
arrayB[i][j] = arrayA[j][i];
}
arrayB[i].reverse()
}
return arrayB;
}
//задаем
trace(matrixRotation([[0,1],[0,0],[1,0],[0,2]])); //[0,1],[0,0],[2,0],[0,1]
ПС. конечно iNils, Вы дали мне хороший урок что быстрее было б открыть книжку по "Компьютерой графике" или какой-то математике и решить,но все же...
__________________
Flash в крови |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|