私は変換マトリックスに取り組んでいます。私がしたいのは、回転変換を削除し、スケーリング、変換などを保持することです.
どうすればいいですか?手動でプログラムされたソリューションを作成しようとしています。
アフィン行列分解を使用する必要があります。長所と短所が異なるいくつかの方法があります。あなたはそれを調べる必要があります。ただし、開始するためのいくつかのリンクを次に示します。
http://callumhay.blogspot.com/2010/10/decomposing-affine-transforms.html
http://www.itk.org/pipermail/insight-users/2006-August/019025.html
これは、変換の性質に応じて、より単純またはより複雑になる可能性がありますが、私はそれがアフィンであると想定しています. しかし、それが線形/剛体であれば、これははるかに簡単です。透視変換であれば、より複雑になると思います。
行列が回転+平行移動+スケーリングであることが確実にわかっている場合は、必要なパラメーターを抽出するだけです。
rotation = atan2(m12, m11)
scale = sqrt(m11*m11 + m12*m12)
translation = (m31, m32)
あなたが3D変換に興味を持っていることに気づきませんでした。その場合、回転部分は厄介な部分ですが、平行移動と拡大縮小が必要な場合は...
translation = (m41, m42, m43)
scale = sqrt(m11*m11 + m12*m12 + m13*m13)