旋转图像

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;
} 

以上是关于旋转图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 ActionBar 旋转 Android 的双片段

Butterknife 片段旋转给出 NullPointer

导航后未附加回收站视图

如何在Win2D中旋转矩形

如何在没有活动旋转的情况下旋转活动内的片段?

代码题(38)— 旋转图像矩阵置零