2008年11月18日火曜日

Quartz Composer: MatrixToParams (同次変換行列をパラメータに分解し,得るパッチ)

4x4の同次変換行列から各パラメータを抜き出して3D Transformationパッチに入れられるようにしてみた.

で,こんな感じ.
名前
MatrixToParams
謝辞
こちらを参考にしました.ありがとうございます.
制約
NSNumberにつめたdoubleを16個しまってあるNSArrayオブジェクトが入力です.これを同次変換行列とみなします.拡大縮小はないことが前提です.
作成環境
MBP (Intel) / MacOSX 10.5.5 / Xcode 3.1 / Quartz Composer 3.1
ビルド
アクティブターゲットを"Build & Copy", アクティブなビルド構成を"Release"にしてビルドすると'${HOME}/Library/Graphics/Quartz\ Composer\ Plug-Ins'の下に'MatrixToParams.plugin'ができてQCで使えるハズです.

使い方
同次変換行列からロール,ピッチ,ヨーおよび平行移動量を取り出します.3D Transformatinパッチにつなぐと便利です.

免責(?):
AS ISでお願いします.とりあえずなんだか動いたよって程度のものだと認識してくださいね.
ダウンロード:
ここ (2010/09/08 変更).
応用例
こんな感じ.


'3D Transformation'パッチの中


'Lighting'パッチの中


実行画面

X軸に90度倒れているのはSingleMarkerDetector(ARToolKit)の出力がそうだから.適当なパッチで90度まわせばOK.


ちなみにここで指摘はされているw.なんでMQOなの?っていわれたら工学ナビさんでARToolKitを知ってそのマネっ子から始めたから.っていう,そんだけなんだけどね.もともとSimpleLiteという一つのパッチで始めて,MQOの表示も一緒だったんだけど分けた方がQCっぽいなっていう安易な発想だったのでこうなったw.

久しぶりに逆運動学とか思い出したよw.

間違いやお気づきの点がありましたらコメントもらえるとうれしいです.

0 件のコメント: