数学编程 矩阵旋转
来源:互联网 发布:js校验文本框输入数字 编辑:程序博客网 时间:2024/06/01 08:53
将一个n*n的矩阵顺时针旋转90度,具体以3x3矩阵为例
下标对应关系,用(i,j)表示,自己捋一捋,很容易看出来,变换后的列下标,即j按行增加,故按列遍历,编写代码如下
void rotate(char a[200][200],int n){ char b[200][200]; int i,j; for(j=0;j<n;++j) {for(i=0;i<n;++i){ b[j][i]=a[n-i-1][j]; } }for(i=0;i<n;++i){ for(j=0;j<n;++j) { a[i][j]=b[i][j]; }} }或者按照正常变换格式,把所有的按行遍历
void rotate(char a[200][200],int n){char b[200][200];int i,j; for(i=0;i<n;++i){for(j=0;j<n;++j){ b[i][j]=a[n-j-1][i]; }}for(i=0;i<n;++i){for(j=0;j<n;++j){ a[i][j]=b[i][j]; }} }
下面再转载一个网上的代码,用指针写的,感觉更加便捷
#include <iostream> using namespace std; const int M = 5; const int N = 3; int main() { int a[M][N] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; int *p = a[0]; for(int i = 0;i < M;i++) // M = 5 { for(int j = N-1;j >= 0;j--) // N = 3 { cout << *(p + i + j*M) << ","; // M = 5; } cout << endl; } return 0; }
阅读全文
0 0
- 数学编程 矩阵旋转
- 编程 旋转矩阵
- 3D数学基础---矩阵旋转
- 3d数学基础-旋转矩阵-C++代码实现
- 3D数学 矩阵和线性变换之旋转
- 编程算法 - 旋转矩阵 代码(C)
- 编程算法 - 旋转矩阵 代码(C)
- 编程算法 - 旋转矩阵 代码(C)
- 编程题(顺时针旋转矩阵)
- 3D数学 矩阵乘法编程
- 3d数学基础-欧拉角转换与旋转矩阵或旋转矩阵转换成欧拉角-用C++代码实现
- 旋转矩阵
- 矩阵旋转
- 旋转矩阵
- 旋转矩阵
- 旋转矩阵
- 旋转矩阵
- 矩阵旋转
- Android中事件传递机制的总结
- Spring Boot校验
- 子窗体刷新父窗体
- Java 基础学习笔记之用for循环输出一个*号 1357的三角形
- Skiing( 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 )
- 数学编程 矩阵旋转
- TCP三次握手与四次挥手
- 想玩libevent竟然出错
- 程序的多文件组织
- CSS——很多让p变红的方法
- Linux shell 获取给定日期的前(后)n 天(月)
- 覆盖滑动ViewPager
- HDU 2907 Diamond Dealer(凸包对比)
- 2.2分析算法(随手笔记)