矩阵旋转坐标变换
矩阵旋转坐标变化
初始矩阵大小为\(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;
}