Скажем, каждый пиксель на этом рисунке (рис. 1) является элементом массива. Как бы повернуть его на 90 градусов против часовой стрелки (рис. 2) и инвертировать его вертикально (рис. 3)?Как вращать массив против часовой стрелки и инвертировать его по вертикали?
фигура 1:
фигура 2:
фигура 3:
Мои текущие коды:
private static Color[][] invert(Color[][] chunk){ //same as rotate
Color[] temp;
for(int i=0;i<chunk.length/2;i++){ //reverse the data
temp=chunk[i];
chunk[i]=chunk[chunk.length-i-1];
chunk[chunk.length-i-1]=temp;
}
return chunk;
}
private static Color[][] rotate(Color[][] chunk){
int cx = chunk.length;
int cz = chunk[0].length;
Color[][] rotated = new Color[cz][cx];
for(int x=0;x<cx;++x){
for(int z=0;z<cz;++z){
rotated[z][x]=chunk[cz-z-1][x];
}
}
return rotated;
}
переворачивания выполняет ту же функцию, что и поворота хоть. Любая помощь?
На основании вашего ответа я получил: темп = кусок [я] [J]; Кусок [I] [J] = Кусок [J] [I]; chunk [j] [i] = temp; Но это не делает ничего другого, часть остается прежней. Помогите? – jocopa3
создайте новый массив 'result' и сохраните запись' input [i] [j] 'входного массива в записи' result [j] [i] '. не работают на входном массиве! – Baz