投稿者 tel | 2012年4月21日

SRTの変形の逆行列を求める

普通に逆行列を求めようとするととても大変なので制限をつけて簡単に求めてみる。

拡大縮小(Scaling)、回転(Rotation)、平行移動(Translation)それぞれの行列の逆行列を求める。逆行列を求める行列の種類があらかじめ分かっているなら次のような計算で逆行列が求められる。

拡大縮小

拡大縮小の行列の逆行列は逆数になる。(x倍に対して1/x倍すると元に戻る)

回転行列

回転行列の逆行列は回転行列が直交行列なので転置行列になる。

平行移動

平行移動の行列の逆行列は平行移動の成分の符号が反対になる。(反対方向に移動すると元に戻る)

ゲームなどの姿勢制御で行列を用いる場合、拡大縮小、回転、平行移動の順番で適用することが多い。それぞれの頭文字をとってSRTとか言う。

SRT行列の逆行列は左から行列をかける場合、以下のようになる。もとのSRTの情報が分かっていれば個別に逆行列を求めたものをかけて計算できる。

ただし4×4同士の行列をかけるのに乗算は4×16=64回、加算は3×16=48回とそれなりに計算量が多いので、Sが存在しない場合などにしか計算量は減らないかも。

平行移動と回転だけの行列(ビュー変換行列とか)の場合は、回転成分と平行移動成分にわけて次のように求められる。

ビュー変換行列の逆行列を求める機会は多そうなので使えるかも。と思ったけどビュー変換行列を求めるときに一緒に逆行列を求めたほうがコストは低そう。


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。