SBMatrix 1.0.2

SBMatrix 1.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2017年5月

SBMatrix维护。



SBMatrix 1.0.2

  • 作者:
  • SCIENART BB

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();

其他

  • 行列式(det())
  • 高斯消元(gausselim())
  • 高斯-若尔当消元(gjordelim())
  • LU分解(lu())
  • QR分解(qr())

全局例程

  • 旋转
  • 平移
  • 缩放
  • 倾斜
  • 观察点
  • 投影(正交,透视)
  • 欧拉
  • 仿射变换 2D / 3D
  • 线性插值
  • 德卡斯特里奥
  • 贝塞尔二次/三次曲线
  • 弧线
  • 赫尔米特
  • 垂直 CW / CCW
  • 找单位圆
  • 找椭圆