Quaternion的初始化:
Quaterniond q1(1, 2, 3, 4); // 第一种方式
Quaterniond q2(Vector4d(1, 2, 3, 4)); // 第二种方式
以上两种方式是不同的,在Quaternion内部的保存中,虚部在前,实部在后,如果以第一种方式构造四元数,则实部是1, 虚部是;对于第二种方式,则实部是4,虚部是。
代码:
#include <iostream>
#include <eigen3/Eigen/Geometry>
#include <eigen3/Eigen/Core>
using namespace std;
using namespace Eigen;int main() {
cout << "Quaternion from vector4d(1, 2, 3, 4) is:\n"
<< Quaterniond(Vector4d(1, 2, 3, 4)).coeffs().transpose() << endl;
cout << "Quaternion from (1, 2, 3, 4) is:\n"
<< Quaterniond(1, 2, 3, 4).coeffs().transpose() << endl;
return 0;
}// 输出:
Quaternion from vector4d(1, 2, 3, 4) is:
1 2 3 4
Quaternion from (1, 2, 3, 4) is:
2 3 4 1