#define N 5
int matrice[N][N] = {
{ 1, 2, 3, 4, 5},
{ 6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}
};
void ruotaMatrice90(int matrice[N][N], int risultato[N][N]) {
for (int riga = 0; riga < N; riga++) {
for (int colonna = 0; colonna < N; colonna++) {
risultato[colonna][N - 1 - riga] = matrice[riga][colonna];
}
}
}
int getValueMatrice90(int matrice[N][N], int riga, int colonna) {
// Calcola le coordinate originali corrispondenti
int rigaOriginale = 5 - 1 - colonna;
int colonnaOriginale = riga;
return matrice[rigaOriginale][colonnaOriginale];
}
void stampaMatrice(int matrice[N][N]) {
for (int riga = 0; riga < N; riga++) {
for (int colonna = 0; colonna < N; colonna++) {
if (matrice[riga][colonna] < 10) {
Serial.print(" ");
}
Serial.print(matrice[riga][colonna]);
Serial.print(" ");
}
Serial.println();
}
}
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Matrice originale:");
stampaMatrice(matrice);
int ruotata[N][N];
for (int riga = 0; riga < N; riga++) {
for (int colonna = 0; colonna < N; colonna++) {
ruotata[riga][colonna] = getValueMatrice90(matrice, riga, colonna);
}
}
Serial.println("Matrice ruotata di 90 gradi in senso orario:");
stampaMatrice(ruotata);
delay(1000);
}