で、私的基準として、
大きく分けて2種類ありました。
Matrix matrix = new Matrix();
に、
1, 2, 3
matrix = 4, 5, 6
7, 8, 9
のような3x3の行列を代入したとする。
んーで、これを転置することを考えましょう。
1つめのタイプのライブラリは、
Matrix newmatrix = matrix.Transpose();
とかって転置したとき、
matrixはオリジナルのまま保たれ、
newmatrixに転置された行列が入るタイプ。
1, 2, 3 1, 4, 7
matrix = 4, 5, 6 newmatrix = 2, 5, 8
7, 8, 9 3, 6, 9
もう1つのタイプは、
matrix.Transpose();
と、
そもそもTranspose()がvoidであることが多く、
matrixそのものが転置されるタイプ。
1, 4, 7
matrix = 2, 5, 8
3, 6, 9
とりあえず。
前者じゃないと私は使いにくくて仕方ないと感じる。
ところが、(私にとって)けしからんことに、Microsoft.DirectX namespace(だっけ?)に入っているMicrosoft謹製のMatrix構造体は、後者だった気がする。
// そもそも、横ベクトル前提の回転なので、ちょっぴり使いにくい。
今日もまた、行列ライブラリ探しの旅に出る。
PR