使用齐次坐标,变换矩阵
/*
输入一个n*n的字符矩阵,把它逆时针旋转90度后输出:
经计算n*n方阵旋转90度的变换矩阵为:
0, 1, 0, 0, -1, 0
-1, 0, 0, 其逆矩阵为, 1, 0, 0
n-1, 0, 1 0, n-1, 1
*/
#include <stdio.h>
#define N 4
char m[N][N]= {
{'a', 'b', 'c', 'd'},
{'e', 'f', 'g', 'h'},
{'i', 'j', 'k', 'l'},
{'m', 'n', 'o', 'p'}
};
int main(){
int i, j;
for(i=0; i<N; ++i){
for(j=0; j<N; ++j)
printf("%c ", m[j][N-1-i]);
printf("\n");
}
return 0;
}