2013-02-23 5 views
8

고유 벡터를 사용하여 벡터 A를 벡터 B로 회전시키는 회전 행렬을 얻을 수 있습니까? 잠시 동안 검색했지만 관련 API를 찾을 수 없습니다.고유 번호의 회전 행렬

답변

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 =의 과부하가 작동합니다. 그러나, 각각은 명시 적이므로'Matrix3fR = Quaternionf() .setFromTwoVectors (A, B);'.toRotationMatrix()'가 필요하거나'Matrix3f (.)'에 명시 적으로 캐스트하거나 명시 적으로 ctor Matrix3f R (Quaternionf(). setFromTwoVectors (A, B)); ' – ggael

+0

죄송합니다. 그 미묘한 미묘함을 놓쳤습니다. 차이점을 설명해 주셔서 감사합니다. –