odwracanie wielowymiarowej tablicy java
Mam klasę, która tworzy kanwę znaków o pożądanej szerokości i wysokości.
w tym mam metodę drawLetter () (która zasadniczo zmienia znaki tak, że litera pojawia się na płótnie (jak bardzo prosta sztuka ASCII)
Mam 3 inne metody rotateClockwise, flipHorizontal i flipVertical
obracaj i flipHorizontal zrobiłem dobrze i działają, ale wydaje mi się, że nie wiem, gdzie pójdę źle z odwróceniem tablicy w pionie (z ciekawości myślę, że mam poziome i pionowe złą stronę, ale źle próbuję tego, co próbuję zrobić poniżej)
to jest to, czego nie mogę wypracować:
to:
# # # ~
~ # ~ ~
~ # ~ ~
~ ~ ~ ~
do tego:
~ # # #
~ ~ # ~
~ ~ # ~
~ ~ ~ ~
oczywiście będzie to zrobione w pętli for, podobnie jak inne moje metody, poniżej opublikuję metodę, którą zrobiłem już dla poziomej i obracam zgodnie z ruchem wskazówek zegara, aby udowodnić, że nie jest to zadanie domowe
void mirrorHorizontally()
{
char[][]horizontalImage = new char[height][width];
for (int i = 0; i < height /2; i++)
{
for(int j = 0; j < width; j++)
{
horizontalImage[height - (i+1)][j] = canvasArray[i][j];
horizontalImage[i][j] = canvasArray[height - (i+1)][j];
}
}
printPicture(horizontalImage);
}
void rotateClockwise()
{
char[][] rotatedImage = new char[height][width];
for(int i=0; i< canvasArray.length; i++)
{
for(int j= canvasArray.length-1; j >= 0; j--)
{
rotatedImage[i][rotatedImage.length-1-j] = canvasArray[j][i];
}
}
printPicture(rotatedImage);
}
canvasArray jest oryginalnym obrazem, który nie jest interesujący w zmiennej char [] []