2011-01-31 8 views
0

私は、視覚変換として使用できる4x4変換行列を開発するステップを誰かに教えてもらえませんか?カメラ/変換行列の表示

カメラが(1,2,2)^ T カメラが方向(0,1,0)を指している^ T 上のベクトルは、上のプラスのy方向にマップされます。画像は方向(0; 0; 1)^ Tです。

私はノートを見てきましたが、コンピュータグラフィックスではよくあることを知っているので、これらの問題の解決方法を理解していません。

答えて

1

hereを使用して、行列を塗りつぶし、変換行列を構築するまで各行列を次々に乗算することができます。 (回転行列が間違っている可能性がありますので、hereの式を再度確認してください)

解決しようとしている問題のタイプは何ですか?あなたは本当に狭い質問をしませんでした。

カメラ位置が変換マトリックスを使用して設定されることになる。

[1 0 0 X] 
[0 1 0 Y] 
[0 0 1 Z] 
[0 0 0 1] 

は置換[1,2,2]^[X、Y、Z]^T

ためのTがあなたに与えます変換行列:これは入力ベクトルで乗算することができる

[1 0 0 1] 
[0 1 0 2] 
[0 0 1 2] 
[0 0 0 1] 

[x y z 1]^T 
入力ベクトルの

[1 0 0 1] [x] = x+1 
[0 1 0 2] [y] = y+2 
[0 0 1 2] [z] = z+2 
[0 0 0 1] [1] = 1 

を[4,5,6,1]、これは[5,7,8,1]をもたらすであろう:これと同様に、その点を変換するため

入力x、y、zポイントを上に接続したX、Y、Zで移動または変換するだけです(今のところ最後のコンポーネントは無視されます)。

一種のPのように、関数を呼び出すように、p本の

p = M v 

と思うが、それを呼び出し、ベクトルvを掛けた行列Mはあなたにベクトルを与えることを覚えておいてください=罪(x)の代わりに、P = M(v)ここで、Mは変換関数ですが、私たちが気にする変換は厳密に線形演算子で表すことができるので、行列の形になります。行列乗算を表現するファンシーな方法です。 4つのスカラー乗算の合計を言う。これらの行列変換を関数呼び出しと同じように連鎖させるには、それらを次々に乗算するだけです。 (これは単純化されているので、我々は透視変換を行うために分割を行う必要があるので、ちょうど3x3の代わりに4x4行列でトリックを行い、それを行うのは奇妙な用語である "均質座標"を意味する)

あなたのクラスに教科書や講義ノートがありますか(オンラインの場合はリンクできますか?)私は材料が他の変換をカバーし、おそらく例を提供すると思います。あなたはそれを試して、いくつかのベクトルv = [-9 -8 -7]に上記の4x4行列を掛けて、それからどのような[x y z w]ベクトルを得るかを見てみることができます。次に、回転行列の他の値を差し込みます。

回転行列に正しい順序で回転行列を掛ける必要があるトリッキーなビットに実行することができます。変換行列が0,0,0以外の場合、R TはT Rとは異なる行列になります。

+0

私はこれらのパラメータを使って表示変換として使用できる4 x 4マトリックスを開発し、私の仕事を見せてくれるように頼んでいました。 – Joey

+0

Mw2v = TRここで、Mw2vは行列を見る変換の世界、Tは平行移動、Rは回転を表すノート内の数式を見つけました。 – Joey

+0

さて、私はあなたにT行列を構築する方法を示しました。あなたは、R行列を計算し、T行列で右乗算して答えを得る必要があります、Mw2v。 R行列が恒等行列であれば、Mw2v = Tとなります。対処しなければならない唯一の角度(私が問題を正しく理解している場合)はおそらく+/- 90あなたがリンクしているページの右端の行列方程式(glRotateというラベルが付いている)にプラグインしてください。記号を間違えてしまうのは簡単ですので注意してください。できれば、OpenGLでチェックしますか? –

関連する問題