Main Content

view

相机视线

说明

示例

view(az,el) 为当前坐标区设置相机视线的方位角和仰角。

示例

view(v) 根据 v(二元素或三元素数组)设置视线:

  • 二元素数组 - 其值分别是方位角和仰角。

  • 三元素数组 - 其值是从图框中心点到相机位置所形成向量的 x、y 和 z 坐标。MATLAB® 使用指向同一方向的单位向量计算方位角和仰角。

示例

view(dim) 对二维或三维绘图使用默认视线。对默认二维视图,将 dim 指定为 2,对于默认三维视图,指定为 3

示例

view(ax,___) 指定目标坐标区的视线。

示例

[caz,cel] = view(___) 分别将方位角和仰角返回为 cazcel。指定上述任一语法中的输入参数,以获得新视线的角度。或者,不指定输入参数以获得当前视线的角度。

示例

全部折叠

使用 peaks 函数获取曲面的 xyz 坐标。然后绘制曲面并标记每个轴。

[X,Y,Z] = peaks;
surf(X,Y,Z)
xlabel('X')
ylabel('Y')
zlabel('Z')

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

使用 90 度的方位角和 0 度的仰角查看绘图。新视线与 x 轴同向。

view(90,0)

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

使用 peaks 函数获取曲面的 xyz 坐标。然后绘制曲面并标记每个轴。

[X,Y,Z] = peaks;
surf(X,Y,Z)
xlabel('X')
ylabel('Y')
zlabel('Z')

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

在二维视图中显示绘图。

view(2)

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

创建一组 xyz 坐标,并使用它们绘制一个曲面。然后标记每个轴。

[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
surf(X,Y,Z)
xlabel('X')
ylabel('Y')
zlabel('Z')

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

获取此绘图的方位角和仰角。

[caz,cel] = view
caz = -37.5000
cel = 30

通过将 v 指定为一个向量的 xyz 坐标来更改视图,并返回新的方位角和仰角。新角度基于指向与 v 相同方向的单位向量。

v = [-5 -2 5];
[caz,cel] = view(v)

Figure contains an axes object. The axes object with xlabel X, ylabel Y contains an object of type surface.

caz = -68.1986
cel = 42.8760

从 R2019b 开始,您可以使用 tiledlayoutnexttile 函数显示分块图。调用 tiledlayout 函数以创建 1×2 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1ax2。在两个坐标区中分别创建一个同样的线图。

t = 0:pi/20:10*pi;
xt1 = sin(t);
yt1 = cos(t);
tiledlayout(1,2)

% Left plot
ax1 = nexttile;
plot3(ax1,xt1,yt1,t)
xlabel('X')
ylabel('Y')
zlabel('Z')

% Right plot
ax2 = nexttile;
plot3(ax2,xt1,yt1,t)
xlabel('X')
ylabel('Y')
zlabel('Z')

Figure contains 2 axes objects. Axes object 1 with xlabel X, ylabel Y contains an object of type line. Axes object 2 with xlabel X, ylabel Y contains an object of type line.

将右图的视图更改为沿 x 轴的侧视图。

view(ax2,[90 0]);

Figure contains 2 axes objects. Axes object 1 with xlabel X, ylabel Y contains an object of type line. Axes object 2 with xlabel X, ylabel Y contains an object of type line.

输入参数

全部折叠

方位角,指定为与负 y 轴之间形成的角度,以度为单位。增加此角度对应于从上方查看 x-y 平面时绕 z 轴逆时针旋转。

默认值取决于图是在二维视图中还是在三维视图中。对于二维图,默认值为 0。对于三维图,默认值为 -37.5

示例: view(45,25) 将方位角设置为 45 度,将仰角设置为 25 度。

仰角,指定的视线与 x-y 平面之间的最小角度(以度为单位)。从 -90 度增加到 90 度对应于从负 z 轴旋转到正 z 轴。

默认值取决于图是在二维视图中还是在三维视图中。对于二维图,默认值为 90。对于三维图,默认值为 30

示例: view(45,25) 将方位角设置为 45 度,将仰角设置为 25 度。

视线向量,指定为下列值之一:

  • 二元素数组,其值分别是方位角和仰角。

  • 三元素数组,其值是从图框中心点到相机位置所形成向量的 x、y 和 z 坐标。MATLAB 基于指向同一方向的单位向量计算方位角和仰角。因此,v 的模对视线没有影响。

    3-D coordinate space showing the vector (x, y, z) with the azimuth and elevation angles

示例: view([45 25]) 将方位角设置为 45 度,将仰角设置为 25 度。

示例: view([20 25 5]) 将视线设置为指向与向量 [20 25 5] 相同方向的向量。

维度,指定为 23。此参数将方位角和仰角设置为 MATLAB 对二维图或三维图应用的默认值。

dim 的值方位角仰角
2
090
3
-37.530

目标坐标区,指定为:

  • Axes 对象。

  • Axes 对象组成的数组。(自 R2022a 开始提供)

如果不指定此参数,则 view 会修改当前坐标区。

详细信息

全部折叠

视线

视线以图框的中心为起点,指向相机。MATLAB 使用方位角仰角这两个角度定义视线。这些角度是在原点位于图框中心的三维坐标系中测量的。

  • 方位角 - 绕 z 轴的旋转角,从负 y 轴开始测量。增加此角度对应于从上方查看 x-y 平面时绕 z 轴逆时针旋转。

  • 仰角 - 视线与 x-y 平面之间的最小角度。从 -90 度增加到 90 度对应于从负 z 轴旋转到正 z 轴。

3-D coordinate space showing the line of sight vector with the azimuth and elevation angles

提示

  • view 函数控制视线的方向,但不控制视线的起始位置,也不控制相机的位置。要获得更多控制,请使用相机函数,如 camposcamtargetcamupcamvacamrollcamproj

  • 设置方位角和仰角可能会重置其他与相机相关的属性。为了获得最佳效果,请在设置其他与相机相关的属性之前设置方位角和仰角。

版本历史记录

在 R2006a 之前推出

全部展开