A
は、ビュー機能から取得した、MATLABの4×4ビュー行列とする:、回転とスケーリングに対応している必要があり
A(1:3,4)
が翻訳に対応している必要があり、かつ
A(4,:)
Matlabの3Dビュー行列
A = view;
A(1:3,1:3)
べき単純に[0 0 0 1]
になります。
次のような単純なシナリオにカメラパラメータを設定する場合:0.5のから来ている私たちのところ
-1 0 0 0.5
0 1 0 -0.5
0 0 1 -0.5
0 0 0 1
今、私は理解することはできません。
私はA = view
であることを取得。カメラの位置を[0,0,0]に設定して翻訳がないようにすることに注意してください。
別の特殊性、:だから私は気づいた
1 0 0 -0.5
0 1 0 -0.5
0 0 -1 5.5
0 0 0 1
になって=ビュー行列:Aで
set(gca, 'CameraPosition', [0,0,10])
結果-0.5がA(3,4)
で5.5に変更されましたが、これは何とか5 = 10/2と関係します。
つまり、カメラの位置を[0,0、a]に変更すると、ビューマトリックスはA(3,4)
で約a/2
に変わります。
これは...変ですか?独特な?奇妙な?
更新: また、回転行列では1でなければならないが、A(1:3,1:3)の行列式は-1であるということもある。-1のときは回転だけでなくまた、反射。なぜリフレクションが必要なのでしょうか?
私は同じ結果を得ています。確かに奇妙です...この価値は、 (http://www.mathworks.com/matlabcentral/answers/15887-how-to-render-an-accurate-image-of-a-3d-model)には、3Dビューと2Dに関連するいくつかの文書化されていない軸プロパティが記述されています投影 – Amro