今天遇到遇到一个问题,做视变换和投影变换的矩阵相乘的时候,结果总是出现了问题。最后看到Matrix的定义才最终明白。定义如下:
/**
* Matrix math utilities. These methods operate on OpenGL ES format
* matrices and vectors stored in float arrays.
* <p>
* Matrices are 4 x 4 column-vector matrices stored in column-major
* order:
* <pre>
* m[offset + 0] m[offset + 4] m[offset + 8] m[offset + 12]
* m[offset + 1] m[offset + 5] m[offset + 9] m[offset + 13]
* m[offset + 2] m[offset + 6] m[offset + 10] m[offset + 14]
* m[offset + 3] m[offset + 7] m[offset + 11] m[offset + 15]</pre>
*
* Vectors are 4 x 1 column vectors stored in order:
* <pre>
* v[offset + 0]
* v[offset + 1]
* v[offset + 2]
* v[offset + 3]</pre>
*/
最开始有如下的定义,其中matrix是一个长度为16的一维数组,本来下意识认为行优先,但是实际是列优先。
也就是说,Matrix是列优先。