四元数组件浮动(特征)

时间:2015-08-06 11:00:09

标签: c++ eigen quaternions

我有Eigen::Quaternion,我想转换它 组件x, y, z, wdouble

这样的简单赋值不起作用,因为组件的类型为Scalar。这就是我试过的:

Eigen::Quaternion<float> q;
q = Eigen::AngleAxis<float>(2, Eigen::Vector3f(0,0,1));
float x = q.x;

Scalar类型的文档很薄弱。有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

Scalar不是数据类型,而是Eigen::Quaternion的模板参数。

因此,如果您为此四元数声明Eigen::Quaternion<float> q,则Scalar设置为float

您在示例代码中缺少的是提取x组件,您必须调用名为x()方法

以下示例说明了如何执行此操作:

#include <iostream>
#include <Eigen/Geometry> 

int main()
{
  Eigen::Quaternion<float> q;
  q = Eigen::AngleAxis<float>(2, Eigen::Vector3f(0,0,1));
  float x = q.x();

  std::cout << x << std::endl;
}