矩阵旋转坐标变换

矩阵旋转坐标变化
初始矩阵大小为\(n*m\),下标从\(0\)开始
顺时针旋转90
(i,j) -> (j,n-i-1)
顺时针旋转180
(i,j) -> (n-i-1,m-j-1)
顺时针旋转270
(i,j) -> (m-j-1,i)

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[5][5]={
    {1,2,3},
    {4,5,6},
    {7,8,9},
    {10,11,12}
};
int b[10][10];
int main()
{
    int n=4,m=3;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            printf("%02d ",a[i][j]);
        }
        puts("");
    }
    puts("");
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            b[j][n-i-1]=a[i][j];
        }
    }
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            a[i][j]=b[i][j];
        }
    }
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            printf("%02d ",a[i][j]);
        }
        puts("");
    }
    return 0;
}



posted @ 2020-08-12 19:52  Zeronera  阅读(714)  评论(0)    收藏  举报