我正在使用 MATLAB 显示 3d 数据。我使用 GUI 更改视角、缩放和平移。我如何存储此 View 并稍后将其应用于另一个图形(包含或多或少相同的数据)? view
为我提供了一个矩阵,但我如何将其应用于另一个图形?
非常感谢!
最佳答案
要在另一个图形上使用当前视角,您可以这样做:
% call when the source axes is the current axes
[az, el] = view;
% call when the target axes is the current axes
view (az, el);
或者,您可以使用 view
属性的 get
和 set
来做同样的事情。
但是,要一起应用您提到的所有 View 属性,使用 Matlab 的内置“生成 m 文件”选项会更容易 - 当您按照自己的方式获得 3D 图形时,转到 file
->Generate m-file
,将创建一个将 3D 数据作为输入并应用设置的 m 文件。
另一种选择是自己保存这些相关设置(只需检查生成的 m 文件):
plot3(sin(t),cos(t),t);
pba = get(gca, 'PlotBoxAspectRatio');
dar = get(gca, 'DataAspectRatio');
cva = get(gca, 'CameraViewAngle');
cuv = get(gca, 'CameraUpVector');
ct = get(gca, 'CameraTarget');
cp = get(gca, 'CameraPosition');
然后将其应用于当前轴(假设目标轴是当前轴):
set(gca, 'PlotBoxAspectRatio',pba);
set(gca, 'DataAspectRatio',dar);
set(gca, 'CameraViewAngle',cva);
set(gca, 'CameraUpVector',cuv);
set(gca, 'CameraTarget',ct);
set(gca, 'CameraPosition',cp);
关于matlab - 存储 MATLAB 3d 视口(viewport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5090195/