osg.Quat 类表示 OpenSceneGraph 中的四元数。四元数通常用于旋转和方向的表示,并且与欧拉角相比具有更好的性能和精度。
实例化 osg.Quat 类时可以使用多个构造函数。
osg.Quat()
osg.Quat()
构造函数构造一个单位四元数。如果要使用四元数进行旋转,请改用其他构造函数。
osg.Quat(const osg::Quat& quat)
osg.Quat(const osg::Quat& quat)
构造函数构造一个新的四元数,其值等效于传递的 quat
的值。
osg.Quat(double angle, const osg::Vec3d& axis)
osg.Quat(double angle, const osg::Vec3d& axis)
构造函数会根据给定的旋转角度和轴向创建一个四元数。angle
是以弧度为单位的旋转角度,axis
是指定轴的 osg::Vec3d
对象。
osg.Quat(double x, double y, double z, double w)
osg.Quat(double x, double y, double z, double w)
构造函数通过四个 double
值坐标创建一个四元数。
osg.Quat 类还定义了许多成员函数,用于处理和操作四元数。
void makeRotate(double angle, const osg::Vec3d& axis)
void makeRotate(double angle, const osg::Vec3d& axis)
方法将四元数设置为代表给定旋转的四元数。angle
是以弧度为单位的旋转角度,axis
是指定轴的 osg::Vec3d
对象。
void makeRotate(double angle, double x, double y, double z)
void makeRotate(double angle, double x, double y, double z)
方法将四元数设置为代表给定旋转的四元数。angle
是以弧度为单位的旋转角度,x
、y
和 z
分别是指定轴向的坐标。
void set(double x, double y, double z, double w)
void set(double x, double y, double z, double w)
方法设置四元数的坐标。
osg::Quat inverse() const
osg::Quat inverse() const
方法返回该四元数的逆四元数。
void normalize()
void normalize()
方法使该四元数成为单位四元数(即其长度为 1)。
void makeIdentity()
void makeIdentity()
方法将四元数设置为单位四元数。
osg::Quat operator*(const osg::Quat&) const
osg::Quat operator*(const osg::Quat&) const
运算符将该四元数与另一个四元数相乘,并返回结果。
osg::Vec3d operator*(const osg::Vec3d&) const
osg::Vec3d operator*(const osg::Vec3d&) const
运算符将该四元数与给定的 osg::Vec3d
相乘,并返回一个新的 osg::Vec3d
对象。这对于将四元数表示的旋转应用于向量非常有用。
double x() const
double x() const
方法返回该四元数的 x
分量。
double y() const
double y() const
方法返回该四元数的 y
分量。
double z() const
double z() const
方法返回该四元数的 z
分量。
double w() const
double w() const
方法返回该四元数的 w
分量。