旋转矩阵类,继承自 Eigen::Matrix<Scalar, 3, 3>。 Rotation matrix class, inheriting from Eigen::Matrix<Scalar, 3, 3>.
More...
|
| RotationMatrix () |
| 默认构造函数,初始化单位旋转矩阵。 Default constructor initializing an identity rotation matrix.
|
|
| RotationMatrix (Scalar r00, Scalar r01, Scalar r02, Scalar r10, Scalar r11, Scalar r12, Scalar r20, Scalar r21, Scalar r22) |
| 通过 9 个矩阵元素的值构造旋转矩阵。 Constructs a rotation matrix using 9 matrix elements.
|
|
| RotationMatrix (const Eigen::Matrix< Scalar, 3, 3 > &R) |
| 通过 Eigen 3x3 矩阵构造旋转矩阵。 Constructs a rotation matrix from an Eigen 3x3 matrix.
|
|
| RotationMatrix (const Eigen::Quaternion< Scalar > &q) |
| 通过 Eigen 四元数构造旋转矩阵。 Constructs a rotation matrix from an Eigen quaternion.
|
|
| RotationMatrix (const Quaternion< Scalar > &q) |
| 通过 Quaternion 四元数构造旋转矩阵。 Constructs a rotation matrix from a Quaternion object.
|
|
template<typename T , std::enable_if_t< std::is_same< T, Scalar >::value||std::is_same< T, float >::value||std::is_same< T, double >::value, int > = 0> |
| RotationMatrix (const T(&data)[9]) |
|
template<typename T , std::enable_if_t< std::is_same< T, Scalar >::value||std::is_same< T, float >::value||std::is_same< T, double >::value, int > = 0> |
| RotationMatrix (const T(&data)[3][3]) |
|
Eigen::Matrix< Scalar, 3, 3 > | operator- () const |
| 计算旋转矩阵的转置(逆矩阵)。 Computes the transpose (inverse) of the rotation matrix.
|
|
RotationMatrix & | operator= (const RotationMatrix &R) |
| 赋值运算符,将 RotationMatrix 赋值给当前对象。 Overloaded assignment operator to assign a RotationMatrix to the current object.
|
|
RotationMatrix & | operator= (const Eigen::Matrix< Scalar, 3, 3 > &R) |
|
RotationMatrix & | operator= (const Eigen::Quaternion< Scalar > &q) |
|
RotationMatrix & | operator= (const Quaternion< Scalar > &q) |
|
Position< Scalar > | operator* (const Position< Scalar > &p) const |
|
Eigen::Matrix< Scalar, 3, 1 > | operator* (const Eigen::Matrix< Scalar, 3, 1 > &p) const |
| 计算旋转矩阵与三维向量的乘积。 Computes the product of the rotation matrix and a 3D vector.
|
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngle () const |
| 将旋转矩阵转换为欧拉角(默认使用 ZYX 顺序)。 Converts the rotation matrix to Euler angles (default ZYX order).
|
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleZYX () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleXZY () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleYZX () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleYXZ () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleZXY () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleXYZ () const |
|
template<typename Scalar>
class LibXR::RotationMatrix< Scalar >
旋转矩阵类,继承自 Eigen::Matrix<Scalar, 3, 3>。 Rotation matrix class, inheriting from Eigen::Matrix<Scalar, 3, 3>.
该类提供 3x3 旋转矩阵的构造、赋值、矩阵运算以及欧拉角转换等功能, 并支持从四元数构造旋转矩阵。 This class provides functionalities for constructing, assigning, operating on rotation matrices, and converting to Euler angles. It also supports constructing rotation matrices from quaternions.
- Template Parameters
-
Scalar | 旋转矩阵元素的数据类型,如 float 或 double 。 The data type of the rotation matrix elements, such as float or double . |
Definition at line 585 of file transform.hpp.
template<typename Scalar >
template<typename T , std::enable_if_t< std::is_same< T, Scalar >::value||std::is_same< T, float >::value||std::is_same< T, double >::value, int > = 0>
Definition at line 641 of file transform.hpp.
641 : Eigen::Matrix<Scalar, 3, 3>()
642 {
643 (*this) << data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7],
644 data[8];
645 }
template<typename Scalar >
template<typename T , std::enable_if_t< std::is_same< T, Scalar >::value||std::is_same< T, float >::value||std::is_same< T, double >::value, int > = 0>
Definition at line 651 of file transform.hpp.
651 : Eigen::Matrix<Scalar, 3, 3>()
652 {
653 (*this) << data[0][0], data[0][1], data[0][2], data[1][0], data[1][1], data[1][2],
654 data[2][0], data[2][1], data[2][2];
655 }
template<typename Scalar >
将旋转矩阵转换为欧拉角(默认使用 ZYX 顺序)。 Converts the rotation matrix to Euler angles (default ZYX order).
该方法调用 ToEulerAngleZYX()
方法,使用 ZYX(航向-俯仰-横滚)顺序转换欧拉角。 This method calls ToEulerAngleZYX()
, converting to Euler angles in the ZYX (yaw-pitch-roll) order.
- Returns
- 三个欧拉角(roll, pitch, yaw)。 The three Euler angles (roll, pitch, yaw).
Definition at line 728 of file transform.hpp.
728{ return ToEulerAngleZYX(); }