【问题标题】:Transposing Matrices - Horizontal to Vertical - OpenGL ES - iPhone转置矩阵 - 水平到垂直 - OpenGL ES - iPhone
【发布时间】:2012-02-18 18:55:16
【问题描述】:

假设我有以下垂直矩阵:

{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}

我想把它翻译成水平排列——即:

{0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15}

实现这一目标的最简单方法是什么?

编辑

我已经通过手动将每个项目映射到正确的位置来做到这一点,但出于好奇想看看是否有更好的方法。

【问题讨论】:

标签: iphone objective-c c opengl-es 3d


【解决方案1】:

好吧,对于每个 0 (当 n^2 是矩阵的大小时),您应该交换 [i][j] 和[j][i] 元素。

int mat[4][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11},{12,13,14,15}};
int i,j,temp;
for (i=0;i<4;i++)
 for (j=0;j<i;j++) {
  temp=mat[i][j];
  mat[i][j]=mat[j][i];
  mat[j][i]=temp;
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2010-09-30
    • 2021-12-11
    相关资源
    最近更新 更多