MATLAB Function Reference    
viewmtx

視点変換行列

表示

詳細

viewmtx は、2次元の曲面(たとえば、コンピュータのスクリーン)上に、4次元の同次ベクトルを射影する 4行4列の正射影行列、または、透視投影変換行列を計算します。

T = viewmtx(az,el) は、方位角 az と仰角 el に対応する正射影変換行列を出力します。azは、視点の方位角(水平方向の回転)を角度で表わしたものです。elは、視点の仰角を角度で表わしたものです。これは、つぎのコマンドの結果と同じ行列を出力します。

しかし、カレントの視点は変更しません。

T = viewmtx(az,el,phi) は、透視投影変換行列を出力します。phi は、透視法の視点を角度で表わしたものです。phi は、正規化されたプロット立方体の視点角度で、透視法の歪みの量を制御します。

Phi
詳細
0 度
正射影
10 度
望遠レンズに似ています
25 度
標準レンズに似ています
60 度
広角レンズに似ています

出力される行列を使って、view(T) で視点変換を設定することができます。4行4列の透視投影変換行列は、4次元の同次ベクトルを (x,y,z,w) 形式の正規化されていないベクトルに変換します。ここで、w は、1 ではありません。正規化されたベクトル(x/w, y/w, z/w, 1)の x 成分と y 成分は、希望する 2次元の成分となります(下記の例題を参照)。

T = viewmtx(az,el,phi,xc) は、正規化されたプロット立方体内部のターゲット点として、xc を使って透視投影変換行列を出力します(つまり、カメラは点 xc で見ています)。xc は、視点の中心にあるターゲット点です。この点は、3 要素ベクトル xc = [xc,yc,zc]で、区間 [0,1] で指定します。デフォルト値は、xc = [0,0,0] です。

注意

4 次元の同次ベクトルは、対応する 3 次元ベクトルに 1 を付け加えたものです。たとえば、[x,y,z,1] は、3 次元の点 [x,y,z] に対応する 4 次元ベクトルです。

例題

デフォルトの視点方向を使って、3 次元の点 (0.5, 0.0, -3.0) に対応する射影された 2 次元ベクトルを決定します。この点は、列ベクトルです。

単位立方体のエッジを追跡するベクトルは、

で、これらのベクトル内の点をスクリーンに変換し、オブジェクトをプロットします。

25 度の視点角度で透視投影変換を使います。

立方体ベクトルをスクリーンに変換し、オブジェクトをプロットします。

参考

view


 view volumebounds