在 Matlab 中重新使用视图输出矩阵

Re-use the view output matrix in Matlab

在 Matlab 中,我创建了一个相当复杂的 3D 绘图,然后手动操作视图选项,直到我对所看到的内容感到满意为止(如下)。如何重用最终视图的参数?我可以获得 view 命令的输出,它是一个 4 x 4 矩阵,但后者似乎不可重用?

为了从 view 中得到一些你可以传递给 view 以重建视点的东西,你需要指定 two outputsview 这将产生当前方位角和仰角。

[az, el] = view(ax1);

然后您可以将这些传递给不同(或相同)轴上的 view 以指定视点

view(ax2, az, el);

您还可以使用 axes 对象的 View property

AzEl = get(ax1, 'View');
set(ax2, 'View', AzEl);

但是请注意,有许多属性可以控制轴的视图,包括 ProjectionDataAspectRatioPlotBoxAspectRatio 和所有 camera properties.根据您的用例,您可能还需要指定这些。

好的,根据 Suever 的评论,我意识到我需要的所有图形属性都可以通过名为 matlab.graphics.axis.Axes 的图形界面访问。这是可以找到相机参数的地方。另一种方法是按照如下方式逐一查找:

get(gca,'Projection')
get(gca,'CameraPosition')
get(gca,'CameraViewAngle')
get(gca,'CameraTarget')

然后直接在脚本中设置:

set(gca,'Projection','perspective')
set(gca,'CameraPosition',[-7 -5 3]/15)
set(gca,'CameraViewAngle',85)
set(gca,'CameraTarget',[0 .5 0])

我原本以为 view 命令会立即提供此信息。