2012-02-18 5 views
-4

は私が垂直である次の行列持って言う:移調行列は - - のOpenGL ES - 垂直に水平iPhone

{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} 

これを達成する最も簡単な方法は何ですか?

EDIT

私はすでに手動で正しい位置に各項目をマッピングすることでこれを行ったが、好奇心のうち、より良い方法があったかどうかを確認するために思っています。

+3

[何を試しましたか](http://mattgemmell.com/2008/12/08/what-have-you-tried/)? –

+0

転置を意味します。 – Bart

答えて

0

まあ、= J <すべてののために私< N(の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; 
} 
関連する問題