文档

viewmtx

查看变换矩阵

语法

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

描述

viewmtx计算将四维齐次向量投影到二维视图表面(例如,您的计算机屏幕)的4 × 4正交或透视变换矩阵。

T = viewmtx(az,el)返回一个拼字正确的对应于方位角的变换矩阵阿兹和海拔埃尔阿兹是视点的方位角(即水平旋转),以度为单位。埃尔是观点在程度上的提升。

T = viewmtx(az,el,phi)返回一个的角度来看变换矩阵。φ是以度为单位的视角。φ归一化绘图立方体的辅助视角(以度为单位),并控制透视失真的数量。

φ

描述

0度

正射投影

10度

类似于长焦镜头

25度

类似于普通透镜

60度

类似于广角镜头

T = viewmtx(az,el,phi,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 =[。][0 -3 1];x2d = A*x4d;X2d = X2d (1:2)
x2d =0.3967 - -2.4459

创建跟踪单位立方体边缘的矢量。

X = [0 1 0 0 0 1 1 0 0 1 1 1 0 0 0];Y = [0 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 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 = 0 (m,n);Y2 = 0 (m,n);X2 (:) = x2d(1,:);Y2 (:) = x2d(2,:);情节(x2, y2)

使用25度视角的透视变换。

A = viewmtx(-37.5,30,25);X4d =[。][0 -3 1];x2d = A*x4d;X2d = X2d (1:2)/ X2d (4)
x2d =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 = 0 (m,n);Y2 = 0 (m,n);X2 (:) = x2d(1,:)./x2d(4,:);Y2 (:) = x2d(2,:)./x2d(4,:);情节(x2, y2)

另请参阅

|

R2006a之前介绍

这个话题有帮助吗?