给定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).
对这种翻译矩阵进行硬编码是繁琐且容易出错的,并且如果矩阵大小增加到很大数量,那么手动执行此操作只会被延迟。
答案 0 :(得分:3)
如果您有n
个n
矩阵,假设(i, j)
表示i
行和j
列,则轮换到右:
the cell (i, j) will move to (j, n-i)
以下是您的想法。想象整个 i
行。旋转矩阵时,整行将变为整列。哪一个?它将是右侧的i
列,即列n-i
。
现在想象整个 j
列。旋转时,列会变为行。哪一个?它将从顶部开始j
行,即行j
。
答案 1 :(得分:0)