この図 (図 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;
}
ただし、反転は回転と同じ機能を果たします。何か助けはありますか?