我根据第一篇题解写到ac代码,下面是旋转部分的代码,但是不能理解为什么坐标是x+y,x-y
void raotate_c(int x,int y,int r){ //第i行第j个 变成倒数第i列第j个 顺时针
int n=x+r,m=y+r;
for(int i=x-r;i<=x+r;i++){
for(int j=y-r;j<=y+r;j++){
tmp[x-y+j][x+y-i]=arr[i][j]; //不理解的部分
}
}
for(int i=x-r;i<=x+r;i++){ //把临时数组重新赋给原数组
for(int j=y-r;j<=y+r;j++){
arr[i][j]=tmp[i][j];
}
}
}
void raotate_r(int x,int y,int r){ //第i行第j个 变成第i列倒数第j个 逆时针
int n=x+r,m=y+r;
for(int i=x-r;i<=x+r;i++){
for(int j=y-r;j<=y+r;j++){
tmp[x+y-j][y-x+i]=arr[i][j]; //不理解的部分
}
}
for(int i=x-r;i<=x+r;i++){ //把临时数组重新赋给原数组
for(int j=y-r;j<=y+r;j++){
arr[i][j]=tmp[i][j];
}
}
}