[PR]500000円と車プレゼント:今なら無料で現金と新車が当たる大抽選!


3DプログラミングTips トップ

アフィン変換について

・2005年9月23日作成
 

 

YXA Software Development

3D関連の習作はこちらで公開してます。

 




ピ グ ジ ェ ル 牧 場

管理人:いーざ
e-mailはこちら
CQP00202@nifty.ne.jp

アフィン変換その1:平行移動

マトリックスの加算による平行移動については、前回軽く解説しました。
いちおう、3次元の場合の方程式を載せておきます。大して変わりませんが。

前回でも指摘した通り、マトリックスの加算による平行移動では、物体の回転をサポートすることができません。
それを実現するには、マトリックスの乗算による平行移動について学ぶ必要があります(クォータニオンを使う方法もありますが、ここでは説明しません)。
また、それによって、回転だけではなく、スケーリング(拡大縮小)も可能となります。

それでは、マトリックスの乗算で平行移動を行う方程式を紹介しましょう。

位置ベクトルのx、y、z成分に、さらにw成分(=)を追加した「同次ベクトル」を使っているところに注目して下さい。

w成分の役割について理解したい時は、実際に上記の方程式に、適当な数字を入れてスカラー積(内積)を求めてみるのが早いです。
マトリックスの乗算の仕方を忘れてしまった人はこちらまで戻って下さい。

例えば、元の位置がx=10y=20z=30
変化が凾=4凾凵≠T凾噤≠Uの場合、方程式は以下のようになります。

では、x’の値(スカラー積)を計算してみましょう。
方程式の以下の範囲に該当します。

x’ = (1×10)+(0×20)+(0×30)+×=14

アンダーラインの部分( × w要素)の乗算がなされることで、x’に変化の値が反映されるのが分かりますね。


[PR]最新の着うた全部が無料!:何曲でもポイントなしの取り放題