Matlab中对三维图进行视角观察设置——相机视线函数view
当我们采用matlab中的surf函数等绘制好三维图像后,想观察某个角度的图像时,可采用view函数快速多角度便捷设置,下面介绍相机视线函数view的用法:
1.view函数的功能:相机视线;
2.view函数的调用语法:
2.1 为当前坐标区设置相机视线的方位角和仰角
%%
view(az,el)
要理解该程序,首先要熟悉az和el是什么,在空间中代表哪两个角,怎样定义的。下面看一张坐标系,箭头指示正方向。
az即方位角Azimuth,方位角是 x-y 平面上的极坐标角,正值表示按逆时针方向旋转视点。如图所示
el即仰角Elevation,仰角是位于 x-y 平面上方(正)或下方(负)的角度。如上图所示。
2.2 根据 v(二元素或三元素数组)设置视线
view(v)
(1)v为二元素数组 - 其值分别是方位角和仰角。
(2)v为三元素数组 - 其值是从图框中心点到相机位置所形成向量的 x、y 和 z 坐标。MATLAB® 使用指向同一方向的单位向量计算方位角和仰角
2.3 对二维或三维绘图使用默认视线。对默认二维视图,将 dim 指定为 2,对于默认三维视图,指定为 3。
view(dim)
2.4 指定目标坐标区的视线
view(ax,___)
例子:
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')
运行结果为:
对其右边子图进行视角调整
view(ax2,[90 0]);
运行结果为
2.5 将方位角和仰角返回为 caz 和 cel
[caz,cel] = view(___)
例如:
[X,Y] = meshgrid(-5:.5:5);
Z = Y.*sin(X) - X.*cos(Y);
surf(X,Y,Z)
xlabel('X')
ylabel('Y')
zlabel('Z')
运行得到如下图
再运行[caz,cel] = view(___)指令
[caz,cel] = view
得到: