旋转图像
Posted 超浪*牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了旋转图像相关的知识,希望对你有一定的参考价值。
旋转一个二维矩阵图像
- 问题描述:
给定一个N×N的矩阵二维矩阵array图像,请你将图像顺时针旋转90度。
你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵,不能用另一个矩阵来旋转图像。
示例:
- 思路:最能简单理解的一种方式是:先上下关于中心线先翻转,然后在对角线翻转,具体看下图形分析。原理是比较简单的。
- 代码实现:
#include<stdio.h>
#define N 4
int array[][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
/*矩阵按顺时针进行90度旋转的翻转*/
void OverTurn(int array[][N]){
int i,j,temp=0;
for(j=0;j<N;j++){
temp = array[0][j];// 将第一行每个元素赋值中间变量
array[0][j] = array[N-1][j];//
array[N-1][j] = temp;
}
for(i=0;i<N;i++){// 按照对交线分开交换
for(j=0;j<i;j++){
temp = array[i][j];
array[i][j] = array[j][i] ;
array[j][i] = temp;
}
}
}
/*输出函数,简单快捷*/
void DisPlay(int array[][N]){
int i,j;
for(i=0;i<N;i++){
for(j=0;j<N;j++){
printf("%d ",array[i][j]);
}
printf("\\n");
}
}
int main(){
OverTurn(array);
DisPlay(array);
return 0;
}
以上是关于旋转图像的主要内容,如果未能解决你的问题,请参考以下文章