原地旋转矩阵(不申请新的内存空间旋转矩阵)

翻译 2012年07月14日 19:57:20

Given  an  image  represented  by  an  NxN  matrix,  where  each  pixel  in  the  imageis 4bytes, write a method to rotate the image by 90 degrees  Can you do this in place?

描述:给定一个N*N的图像,每个位置的像素是4byte,写一个方法用来在原来的空间内旋转图像90度。

思路:我们可以按层来旋转。

void matrixRotation(int [][]a,int n)
{
	
	for(int layer=0;layer<n;layer++)
	{
		int first=layer;
		int last = n-layer-1;
		for(int i=first;i<last;i++)
		{
			int offset=i-first;
			int top =a[first][i];
			a[first][i]=a[last-offset][first];//left->top
			a[last-offset][first]=a[last][last-offset];//bottom->left
			a[last][last-offset]=a[i][last];//right->bottom
			a[i][last]=top;//top->right
		}
	}

	
	
}



相关文章推荐

原地旋转矩阵

题目: 给定一个大小为N*N的矩阵A,如何在空间复杂度为O(1)的情况下,将矩阵顺时针旋转90度? 解析: 对于矩阵旋转,最容易想到的便是利用一个大小同样为N*N的临时矩阵T,将原矩阵A[i][...
  • acaiwlj
  • acaiwlj
  • 2013年09月08日 11:04
  • 886

旋转矩阵到四元数源代码(新)

  • 2011年03月09日 10:08
  • 17KB
  • 下载

Unity Shader切空间旋转矩阵的笔记

在学习 Unity的Shader时,发现 unity Shader内置了一个宏定义 // Declares 3x3 matrix 'rotation', filled with tangent ...

旋转矩阵与四元数互算

  • 2015年04月23日 11:11
  • 12KB
  • 下载

探讨:向量(方向)之间的插值-四元数法VS.旋转矩阵法的性能比较

问题: 3D空间中,在等长度的两个交角为theta的向量v1(x1,y1,z1),v2(x2,y2,z2)之间进行球面线性插值。 实例: 做一个行星在围绕太阳等速旋转的动画,假设只采样到旋转过程...

由旋转矩阵求欧拉角

  • 2015年09月06日 20:40
  • 93KB
  • 下载

旋转矩阵到四元数源代码

  • 2010年02月26日 17:24
  • 227B
  • 下载

旋转矩阵(Rotate Matrix)的性质分析

学过矩阵理论或者线性代数的肯定知道正交矩阵(orthogonal matrix)是一个非常好的矩阵,为什么这么说?原因有一下几点: 正交矩阵每一列都是单位矩阵,并且两两正交。最简单的正交矩阵就是...

旋转矩阵的简单实现

  • 2011年12月01日 17:50
  • 28KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:原地旋转矩阵(不申请新的内存空间旋转矩阵)
举报原因:
原因补充:

(最多只允许输入30个字)