旋转多维矩阵

时间:2009-10-30 17:10:06

标签: arrays math matrix rotation

给定4x4矩阵,如果矩阵向右旋转90度,我可以应用于每个(x,y)单元格以产生(x,y)的公式?我尝试迭代每个细胞,但不同的细胞给出了不同的公式。

给出以下值的矩阵。

0|  |  |  |  |
1|  |  |  |  |  
2|  |  |  |  |    
3|  |  |  |  |
 -------------
  0   1  2  3  

通过使用下面的矩阵将(x,y)中的值移动到匹配单元格中的(x,y)值,将值旋转90度:

0 | 0,3 | 0,2  | 0,1 | 0,0 |
1 | 1,3 | 1,2  | 1,1 | 1,0 |  
2 | 2,3 | 2,2  | 2,1 | 2,0 |    
3 | 3,3 | 3,2  | 3,1 | 3,0 |
  --------------------------
     0     1      2     3

即:

If cell (0,0) has the value 5, 
using the translation matrix 5 would move to (3,0).

对这种翻译矩阵进行硬编码是繁琐且容易出错的,并且如果矩阵大小增加到很大数量,那么手动执行此操作只会被延迟。

2 个答案:

答案 0 :(得分:3)

如果您有nn矩阵,假设(i, j)表示i行和j列,则轮换到右:

the cell (i, j) will move to (j, n-i)

以下是您的想法。想象整个 i行。旋转矩阵时,整行将变为整列。哪一个?它将是右侧的i列,即列n-i

现在想象整个 j列。旋转时,列会变为行。哪一个?它将从顶部开始j行,即行j

答案 1 :(得分:0)