viewmtx

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

Синтаксис

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

Описание

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

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 к соответствующему трехмерному вектору. Для примера, [x,y,z,1] - четырехмерный вектор, соответствующий трехмерной точке [x,y,z].

Примеры

свернуть все

Определите проективный двумерный вектор, соответствующий трехмерной точке (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)

Figure contains an axes. The axes contains an object of type line.

Используйте перспективное преобразование с углом обзора 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)

Figure contains an axes. The axes contains an object of type line.

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте