C++模板基础的N维矩阵和向量类
平台无关。(iOS/Android/Mac/Win32/Linux)
简单,只需要一个头文件。
Mat22相乘
typedef SBMatrix<float, 2, 2> Mat22;
Mat22 a = {1,2,0,1}, b={1,0,0,1};
Mat22 c = a*b;
printf("%s - %f %f %f %f", __FUNCTION__, c.m[0][0], c.m[0][1], c.m[1][0], c.m[1][1]);
Mat22,Vec2相乘
typedef SBMatrix<float, 2, 2> Mat22;
typedef SBMatrix<float, 2, 1> Vec2;
Mat22 a = {2,0,0,3};
Vec2 b = {1,1};
Vec2 c = a*b;
printf("%s - %f %f ", __FUNCTION__, c.x, c.y);
N维。
typedef SBMatrix<float, 3, 3> Mat3; // for 3x3
typedef SBMatrix<float, 4, 4> Mat4; // for 4x4
typedef SBMatrix<float, 5, 5> Mat5; // for 5x5
也可以为非正方形!
typedef SBMatrix<float, 3, 2> Mat32; // for 3x3
typedef SBMatrix<float, 4, 3> Mat43; // for 4x4
typedef SBMatrix<float, 5, 2> Mat52; // for 5x5
矩阵逆(正方形矩阵)
typedef SBMatrix<float, 2, 2> Mat22;
Mat22 a = {2,0,0,3};
Mat22 b = a.inv();
其他
全局例程