Eigenライブラリを使用して、アフィン変換を等価変換に変換する最も簡単な方法は何ですか?固有アフィン変換を固有アイソメトリ変換に変換する
両方の変換は3Dです。アファイン行列は、左上象限に対して一般的な3x3行列(すなわち、回転、スケーリングおよびせん断)を有するが、等尺度は同じ象限に対して3x3回転行列を有するので、投影が必要である。
Eigen::AffineCompact3f a;
Eigen::Isometry3f b(a.rotation(), a.translation());
が
(line 2) error C2661: 'Eigen::Transform<_Scalar,_Dim,_Mode>::Transform' : no overloaded function takes 2 arguments
と
を与えながらerror C2338: YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION
:
Eigen::AffineCompact3f a;
Eigen::Isometry3f b(a);
は、コンパイルエラーを与えます
Eigen::AffineCompact3f a;
Eigen::Isometry3f b;
b.translation() = a.translation();
b.rotation() = a.rotation();
は、質問のように言い換えることができます()関数を考えると回転()および翻訳を
(line 4) error C2678: binary '=' : no operator found which takes a left-hand operand of type 'const Eigen::Matrix<_Scalar,_Rows,_Cols>' (or there is no acceptable conversion)
を与える「私は最高のアイソメトリックの回転と平行移動コンポーネント変換を設定する方法を教えてください」
標準のC++タイプや名前ではないので、使用しているライブラリやツールキットを指定する必要があります。 – abelenky
私はタイトルとテキストで述べたように、Eigen(よく知られているC++数学ライブラリ)を使用しています。私はそれを明確にするためのリンクを追加します。 – user664303