为什么rotate3d
仅在指定图形对象的句柄时才起作用?
% Wont work. Why?
axes(handles.fig1);
rotate3d on;
% Works
rotate3d(handles.fig1,'on');
此外,rotate3d on;
有时会激活其他轴/图形,但不会使用轴(处理程序)激活上面定义的轴。这很奇怪。
答案 0 :(得分:1)
使用GUIDE(以及一般的GUI)时,最好在使用将要更改特定图形对象的函数时始终直接指定句柄。这可以防止用户与GUI的交互改变预期的行为。由于用户交互以及GUIDE经常改变图形对象的gca
这一事实,对gcf
和HandleVisibility
的依赖在GUI中非常值得怀疑。
要激活3D旋转,您应指定axes
或figure
handles.myax = axes(handles.fig1);
rotate3d(handles.myax, 'on');
% OR: rotate3d(handles.fig1,'on');