在 Matlab 中重新使用视图输出矩阵
Re-use the view output matrix in Matlab
在 Matlab 中,我创建了一个相当复杂的 3D 绘图,然后手动操作视图选项,直到我对所看到的内容感到满意为止(如下)。如何重用最终视图的参数?我可以获得 view
命令的输出,它是一个 4 x 4 矩阵,但后者似乎不可重用?
为了从 view
中得到一些你可以传递给 view
以重建视点的东西,你需要指定 two outputs 到 view
这将产生当前方位角和仰角。
[az, el] = view(ax1);
然后您可以将这些传递给不同(或相同)轴上的 view
以指定视点
view(ax2, az, el);
您还可以使用 axes
对象的 View
property。
AzEl = get(ax1, 'View');
set(ax2, 'View', AzEl);
但是请注意,有许多属性可以控制轴的视图,包括 Projection
、DataAspectRatio
、PlotBoxAspectRatio
和所有 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
命令会立即提供此信息。
在 Matlab 中,我创建了一个相当复杂的 3D 绘图,然后手动操作视图选项,直到我对所看到的内容感到满意为止(如下)。如何重用最终视图的参数?我可以获得 view
命令的输出,它是一个 4 x 4 矩阵,但后者似乎不可重用?
为了从 view
中得到一些你可以传递给 view
以重建视点的东西,你需要指定 two outputs 到 view
这将产生当前方位角和仰角。
[az, el] = view(ax1);
然后您可以将这些传递给不同(或相同)轴上的 view
以指定视点
view(ax2, az, el);
您还可以使用 axes
对象的 View
property。
AzEl = get(ax1, 'View');
set(ax2, 'View', AzEl);
但是请注意,有许多属性可以控制轴的视图,包括 Projection
、DataAspectRatio
、PlotBoxAspectRatio
和所有 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
命令会立即提供此信息。