Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我正在使用MATLAB显示3d数据。我使用GUI来更改视角,缩放和平移。如何存储此视图,然后将其应用于另一个图形(包含或多或少的相同数据)? 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进行相同的操作。 但是,要应用您一起提到的所有视图属性,使用Matlab的内置“生成m文件”选项会更容易-当您以所需的方式获得3D图形时,转到file -> Generate m-file ,然后将创建一个m文件,该文件获取3D数据作为输入,并应用设置。 另一个选择是自己保存这些相关设置(只需检查生成的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); 更多&回答... |
![]() |
![]() |