matlab指南rotate3d没有按预期工作

时间:2017-03-28 16:44:12

标签: matlab matlab-figure matlab-guide

为什么rotate3d仅在指定图形对象的句柄时才起作用?

% Wont work. Why?
axes(handles.fig1);
rotate3d on; 

% Works
rotate3d(handles.fig1,'on');

此外,rotate3d on;有时会激活其他轴/图形,但不会使用轴(处理程序)激活上面定义的轴。这很奇怪。

1 个答案:

答案 0 :(得分:1)

使用GUIDE(以及一般的GUI)时,最好在使用将要更改特定图形对象的函数时始终直接指定句柄。这可以防止用户与GUI的交互改变预期的行为。由于用户交互以及GUIDE经常改变图形对象的gca这一事实,对gcfHandleVisibility的依赖在GUI中非常值得怀疑。

要激活3D旋转,您应指定axesfigure

handles.myax = axes(handles.fig1);
rotate3d(handles.myax, 'on'); 

% OR: rotate3d(handles.fig1,'on');