osg.Matrixf
是OpenSceneGraph中用于表示矩阵的类。它提供了对矩阵的基本操作和运算,可以在3D图形应用程序中用于实现变换、投影等功能。
osg.Matrixf
有多个构造函数可以用于创建不同的矩阵。其中最常用的是:
osg::Matrixf()
该构造函数创建一个单位矩阵。
void osg::Matrixf::set(int row, int col, float value)
用于设置矩阵第 row
行、第 col
列的元素值为 value
。
void osg::Matrixf::set(float const * ptr)
用于设置整个矩阵的元素,参数为一个float型数组,按行优先顺序。
float osg::Matrixf::operator() (int row, int col) const
重载了括号运算符,用于获取矩阵第 row
行、第 col
列的元素值。
float const * osg::Matrixf::ptr() const
获取整个矩阵的元素,以float型数组形式返回,按行优先顺序。
const osg::Matrixf & osg::Matrixf::operator*= (const osg::Matrixf & rhs)
用于对当前矩阵与另一矩阵进行乘法运算,结果存储在当前矩阵中,并返回当前矩阵的引用。
osg::Matrixf operator* (const osg::Matrixf & lhs, const osg::Matrixf & rhs)
用于对两个矩阵进行乘法运算,返回一个新的矩阵。
void osg::Matrixf::makeTranslate(float x, float y, float z)
用于创建一个平移变换矩阵,以 (x, y, z)
为向量进行平移。
void osg::Matrixf::makeRotate(float angle, float x, float y, float z)
用于创建一个旋转变换矩阵,以 (x, y, z)
为向量进行旋转,旋转角度为 angle
(单位为度)。
void osg::Matrixf::makeScale(float x, float y, float z)
用于创建一个缩放变换矩阵,以 (x, y, z)
为向量进行缩放。
void osg::Matrixf::makeOrtho(float left, float right, float bottom, float top, float nearPlane, float farPlane)
用于创建一个正交投影矩阵,在左、右、下、上、近、远6个平面内进行投影。
void osg::Matrixf::makeFrustum(float left, float right, float bottom, float top, float nearPlane, float farPlane)
用于创建一个透视投影矩阵,在左、右、下、上、近、远6个平面内进行投影。
osg::Matrixf m1; // 创建一个单位矩阵
osg::Matrixf m2;
m2.makeScale(2.0f, 3.0f, 4.0f); // 创建一个缩放矩阵
osg::Matrixf m3 = m1 * m2; // 矩阵相乘,得到缩放矩阵