Пусть A
быть вид 4x4 матрица от Matlab, полученные из функции просмотра:Matlab 3D вид матрицы
A = view;
A(1:3,1:3)
должны соответствовать поворот и масштабирование,
A(1:3,4)
должен соответствовать переводу, и
A(4,:)
должны просто быть [0 0 0 1]
.
При настройке параметров камеры к следующему простому сценарию:
Я понимаю, что A = view
является:
-1 0 0 0.5
0 1 0 -0.5
0 0 1 -0.5
0 0 0 1
Теперь я не могу понять, где наши 0,5-х поступают из , Обратите внимание, что я установил положение камеры на [0,0,0], чтобы не было перевода.
Другая особенность, установка положения камеры в [0,0,10] по:
set(gca, 'CameraPosition', [0,0,10])
результатов в A: = вид матрицы становится
1 0 0 -0.5
0 1 0 -0.5
0 0 -1 5.5
0 0 0 1
Так что я заметил -0.5 изменился на 5.5 в A(3,4)
, и это как-то связано с 5 = 10/2.
То есть, изменение положения камеры на [0,0, a] изменяет матрицу вида на A(3,4)
примерно на a/2
.
Это ... странно? Свой? Странный?
Обновление: Еще одна особенность заключается в том, что определитель A (1: 3,1: 3) равен -1, хотя для матрицы вращения он должен быть равен 1. Когда это -1, это означает, что это не только вращение, но и тоже отражающий. Зачем нам нужно размышлять?
Я также получаю те же результаты, что странно ... Для чего стоит, посмотрите эту [нить] (http://www.mathworks.com/matlabcentral/answers/15887-how-to-render-an-accurate-image-of-a-3d-model), в котором упоминается несколько свойств недокументированных осей, связанных с 3D-представлением и 2D проекция – Amro