viewmtx

Просмотрите матрицы преобразования

Синтаксис

viewmtx
T = viewmtx(az,el)
T = viewmtx(az,el,phi)
T = viewmtx(az,el,phi,xc)

Описание

viewmtx вычисляет ортогональное 4 на 4 или перспективную матрицу преобразования что проекты четырехмерные гомогенные векторы на двумерную поверхность представления (e.g., ваш монитор).

T = viewmtx(az,el) возвращает ортогональную матрицу преобразования, соответствующую азимуту az и вертикальное изменение el. az азимут (т.е. горизонтальное вращение) точки зрения в градусах. el вертикальное изменение точки зрения в градусах.

T = viewmtx(az,el,phi) возвращает перспективную матрицу преобразования. phi перспективный угол обзора в градусах. phi угол представления, за которым подухаживают, нормированного куба графика (в градусах) и управляет объемом перспективного искажения.

Phi

Описание

0 градусов

Ортогональная проекция

10 градусов

Подобно телеобъективу

25 градусов

Подобно нормальной линзе

60 градусов

Подобно широкоугольному объективу

T = viewmtx(az,el,phi,xc) возвращает перспективную матрицу преобразования с помощью xc как целевая точка в нормированном кубе графика (т.е. камера смотрит на точку xc). xc целевая точка, которая является центром представления. Вы задаете точку как трехэлементный вектор, xc = [xc,yc,zc], в интервале [0,1]. Значением по умолчанию является xc = [0,0,0].

Четырехмерный гомогенный вектор формируется путем добавления 1 к соответствующему 3D вектору. Например, [x,y,z,1] четырехмерный вектор, соответствующий 3D точке [x,y,z].

Примеры

свернуть все

Определите спроектированный двумерный вектор, соответствующий 3D точке (0.5 0.0,-3.0) использование направления представления по умолчанию. Обратите внимание на то, что точка является вектор-столбцом.

A = viewmtx(-37.5,30);
x4d = [.5 0 -3 1]';
x2d = A*x4d;
x2d = x2d(1:2)
x2d = 2×1

    0.3967
   -2.4459

Создайте векторы, которые прослеживают ребра модульного куба.

x = [0  1  1  0  0  0  1  1  0  0  1  1  1  1  0  0];
y = [0  0  1  1  0  0  0  1  1  0  0  0  1  1  1  1];
z = [0  0  0  0  0  1  1  1  1  1  1  0  0  1  1  0];

Преобразуйте точки в эти векторы на экран, затем постройте объект.

A = viewmtx(-37.5,30);
[m,n] = size(x);
x4d = [x(:),y(:),z(:),ones(m*n,1)]';
x2d = A*x4d;
x2 = zeros(m,n); y2 = zeros(m,n);
x2(:) = x2d(1,:);
y2(:) = x2d(2,:);
plot(x2,y2)

Используйте перспективное преобразование с 25 углами обзора степени.

A = viewmtx(-37.5,30,25);
x4d = [.5 0 -3 1]';
x2d = A*x4d;
x2d = x2d(1:2)/x2d(4)
x2d = 2×1

    0.1777
   -1.8858

Преобразуйте векторы куба на экран и постройте объект.

A = viewmtx(-37.5,30,25);
[m,n] = size(x);
x4d = [x(:),y(:),z(:),ones(m*n,1)]';
x2d = A*x4d;
x2 = zeros(m,n); y2 = zeros(m,n);
x2(:) = x2d(1,:)./x2d(4,:);
y2(:) = x2d(2,:)./x2d(4,:);
plot(x2,y2)

Представлено до R2006a