0

x、y、z 軸に沿って自由に回転できる 3D オブジェクトがあり、変換行列として保存されます。回転の順序が不明で、オブジェクトが 3 回以上回転する場合 (例: オブジェクトを x-60 度、y-30 度、z-45 度回転し、次に x->30 度回転する場合) )、変換行列から回転した角度を抽出することは可能ですか?.回転のシーケンスがわかっている場合、角度を取得できることは知っていますが、最終的な変換行列だけを持っていれば、他には何もありませんか?変換行列から回転角度 (x、y、および z) を取得できますか?

4

1 に答える 1

2

オイラー角の変換は、かなりよく知られているトピックです。行列の向きベクトルを正規化してから、このc ソース コードのようなものを使用します。

マトリックスは現在の状態であり、過去にどのような変換が行われたかはわかりません。マトリックスがどのように構築されたかはわかりません。次の条件を満たしている限り、行列を取り込んで、好きな断片に分解できます。

  1. データは重複しません。例: 2 回の X ターンは互いに区別できません (1 回転か 2 回転か、3 回転の合計かを知る方法はありません)。
  2. 並び順がわかる
  3. データから分解を構築できます (たとえば、スケールを測定できます)。
于 2013-01-19T21:53:34.840 に答える