重用Matlab中的视图输出矩阵

matlab matlab-figure

63 观看

2回复

158 作者的声誉

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

在此处输入图片说明

作者: pluton 的来源 发布者: 2016 年 4 月 22 日

回应 (2)


3

55928 作者的声誉

为了从中得到一些信息view,然后可以传递以view重建视点,您需要指定两个输出,view产生当前方位角和仰角。

[az, el] = view(ax1);

然后,您可以将它们传递到view不同(或相同)的轴上以指定视点

view(ax2, az, el);

您还可以使用View属性中的axes对象。

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

但是请注意,存在是控制一个轴的包括视图许多特性Projection中,DataAspectRatio中,PlotBoxAspectRatio和所有的摄像机属性。根据您的用例,您可能还需要指定这些。

作者: Suever 发布者: 22.04.2016 01:06

1

158 作者的声誉

决定

好的,根据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命令将立即提供此信息。

作者: pluton 发布者: 22.04.2016 02:51
32x32