#include <complex>
#include <boost/math/quaternion.hpp>
using namespace std;
using namespace boost::math;
int main()
{
quaternion<double> q1;
quaternion<double> q2(1, 2, 3, 4);
complex<double> c1(5, 6);
quaternion<double> q3(c1);
// 色々計算
q1 = q2*q3;
q3 = q2/q1;
q2 = c1 - q1 * 5.0;
return 0;
}
複素数 std::complex<T>
は数二つで a+bi
と表される数ですが、四元数は数四つで a+bi+cj+dk
として表現される数です。各基底は次の関係を満たすものとして定義されます。
例えば3Dグラフィックスの方面では、 回転やアニメーションの記述に使われているそうな。 便利な人には便利。