viewmtx

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

Синтаксис

viewmtx
T = viewmtx (азимут, el)
T = viewmtx (азимут, el, phi)
T = viewmtx (азимут, el, phi, xc)

Описание

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

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

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

Phi

Описание

0 градусов

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

10 градусов

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

25 градусов

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

60 градусов

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

T = viewmtx(az,el,phi,xc) возвращает перспективную матрицу преобразования с помощью xc в качестве целевой точки в нормализованном кубе графика (i. e., камера смотрит на точку 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)

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

Была ли эта тема полезной?