2013-02-23 39 views
8

ベクトルAをベクトルBに回転する回転行列を得るためにEigenライブラリを使用できますか? 私はしばらく検索していましたが、関連するAPIは見つかりませんでした。Eigenの回転行列

答えて

11

あなたが最初quaternionを構築して、例えば、行列に変換する必要があります: ``(A、B) `の後に)、これは追加の` .toRotationMatrixを(必要であることを指摘

#include <Eigen/Geometry> 
using namespace Eigen; 

int main() { 
    Vector3f A, B; 
    Matrix3f R; 
    R = Quaternionf().setFromTwoVectors(A,B); 
} 
+0

・ワース'R'は行列であるので、仕事が必要です。 –

+1

いいえ、operator =のオーバーロードが働いています。 Matrix3f R = Quaternionf().setFromTwoVectors(A、B); '.toRotationMatrix()'が必要な場合や、 'Matrix3f(。)'に明示的にキャストする場合、またはctorを明示的に呼び出す場合Matrix3f R(Quaternionf().setFromTwoVectors(A、B)); ' – ggael

+0

私の間違いを申し訳ありません!その微妙な微妙なことを逃した。違いを説明してくれてありがとう。 –

関連する問題