使用鼠标旋转3-D视图
rotate3d On.
rotate3d掉
rotate3d
rotate3d (figure_handle…)
rotate3d(axes_handle,...)
h = rotate3d(图_Handle)
rotate3d On.
打开旋转模式,并在当前图形的所有轴上启用旋转。
rotate3d掉
关闭旋转模式并禁用当前图形中的交互轴旋转。从R2018b开始,无论旋转模式如何,一些旋转交互默认是启用的。如果您想禁用这些默认交互,则使用disableDefaultInteractivity
函数。
rotate3d
切换当前图形中的交互轴旋转。
rotate3d (figure_handle…)
启用指定图形中的旋转,而不是当前图形中的旋转。
rotate3d(axes_handle,...)
仅在指定的轴上打开旋转模式。
h = rotate3d(图_Handle)
返回一个rotate3d模式对象为图figure_handle定制模式的行为。
您访问旋转模式对象的以下属性。
FigureHandle <处理>
- 关联的数字句柄,无法设置的只读属性
启用
“上”|“了”
- 指定是否在图中启用了此图形模式
rotateTyle.
'轨道'|'框'
- 设置旋转方法
“轨道”
旋转整个轴;“盒子”
旋转坐标轴的绘图盒轮廓。
UseLegacyExplorationModes
'离开'
(默认)|ON / OFF逻辑值 - 遗留模式,指定为“上”
或者'离开'
,或作为数字或逻辑1
(真的
) 或者0
(假
)。价值“上”
相当于真的
, 和'离开'
相当于假
.因此,您可以使用此属性的值作为逻辑值。该值存储为类型的开/关逻辑值matlab.lang.OnoffSwitchState.
.
将此属性设置为“上”
改变UI数字中交互模式的行为,因此它们与传统数据中模式的行为匹配。有关更多信息,请参阅enableLegacyExploriationModes.
.此属性设置为“上”
,它不能变回'离开'
.此属性仅适用于rotate3d对象,用于使用使用的数字uifigure
函数或马铃薯®在线™.
你可以为rotate3d模式操作编写以下回调函数。
ButtonDownFilter < function_handle >
- 拦截功能屁股
事件
应用程序可以在程序员定义的情况下禁止旋转操作,这取决于回调返回的内容。输入函数句柄应该引用一个带有两个隐式参数的函数(类似于handle回调函数):
功能(res) = myfunction (obj event_obj)被单击对象的% obj句柄% event_obj事件数据对象句柄(本版本为空)%res [输出]逻辑标志,以确定是否旋转%操作应该发生或“buttondownfcn”物体的%属性应优先
ActionPreCallback < function_handle >
- 在旋转之前执行的函数
将此回调设置为何时将启动旋转操作时收听。输入函数句柄应该引用一个带有两个隐式参数的函数(类似于图形对象回调函数):
功能myfunction(obj,event_obj)%obj句柄到已单独的图形% event_obj对象,包含事件数据的结构
事件数据包含以下字段:
|
被平移的轴的柄 |
ActionPostCallback
- 旋转后要执行的功能
将这个回调设置为在旋转操作完成时监听。输入函数句柄应该引用一个带有两个隐式参数的函数(类似于图形对象回调函数):
功能myfunction(obj,event_obj)%obj句柄到已单独的图形%event_obj包含事件数据结构的对象(与% ActionPreCallback回调的事件数据)
以下功能在PAN模式查询中并设置其特定属性。
旗帜= isAllowAxesRotate (h,轴)
—命令功能查询转轴权限
调用该功能isAllowAxesRotate
在rotate3d对象上,h
,带有轴柄向量,轴
,因为输入将返回与轴柄向量相同的尺寸的逻辑阵列,其指示是否允许在轴对象上允许旋转操作。
setAllowAxesRotate (h,轴,标志)
—设置平移轴的权限
调用该功能setAllowAxesRotate
在rotate3d对象上,h
,带有轴柄向量,轴
,和逻辑标量,旗帜
,将允许或不允许对轴对象进行旋转操作。
使用鼠标旋转绘图:
冲浪(峰);rotate3d在;
使用“plot Box”旋转样式旋转情节:
冲浪(峰);h = rotate3d;h.rotatestyle =“盒子”;h.Enable =“上”;
创建两个坐标轴作为子图,然后防止其中一个旋转:
AX1 =子图(1,2,1);冲浪(峰);h = rotate3d;h.Enable =“上”;AX2 =子图(1,2,2);冲浪(膜);setallowaxeSrotate(h,ax2,false);%禁止第二个地块的旋转
创建一个buttonDown回调来触发旋转模式对象。复制以下代码到一个新文件,执行它,并观察旋转行为:
功能demo_mbd%允许一条线有自己的'buttondownfcn'回调hline = plot(rand(1,10),'buttondownfcn',“disp(“这执行”)”);hinal.tag =.“DoNotIgnore”;h = rotate3d;h.ButtonDownFilter = @mycallback;h.Enable =“上”;%鼠标单击该行功能[标志] = mycallback(obj,event_obj)%如果对象的标记是'DoNotIgnore',则返回trueobjTag = obj.Tag;如果strcmpi (objTag“DoNotIgnore”)标志=真;别的国旗= false;结束
创建用于触发rotate3D模式对象的按钮下降前和按钮下降后事件的回调。复制以下代码到一个新文件,执行它,并观察旋转行为:
功能demo_mbd2%听取旋转事件冲浪(峰);h = rotate3d;h.ActionPreCallback = @myprecallback;h.ActionPostCallback = @mypostcallback;h.Enable =“上”;功能myprecallback (obj, evd) disp (“旋转即将发生。”);功能mypostcallback(obj,evd)newview = round(evd.axes.view);msgbox(Sprintf(新的观点是[%d %d]。newView));
启用后,rotate3d
提供连续旋转轴和通过鼠标运动所包含的物体。在旋转期间,数字读数出现在图的左下角,显示当前方位角和轴的升高。释放鼠标按钮删除动画盒和读数。这与...不同camorbit
函数的作用rotate3d
工具修改视图
坐标轴的性质camorbit
功能修复了宽高比并修改了摄像机
,冰孔系
和CameraupVector.
轴的特性。看轴属性想要查询更多的信息。
您还可以启用从图形的三维旋转工具菜单或图形工具栏。
您可以创建rotate3d
模式对象一次并使用它来自定义不同轴的行为,如实施例3所示。您还可以在飞行中更改其回调函数。
请注意
不要在交互模式中更改图形回调。虽然某种模式是活动的(当PANNING,缩放等)时,如果您尝试更改任何图形的回调并且操作不会成功,则会收到警告。这个规则的一个例外是数字WindowButtonMotionFcn
回调,可以从模式中更改。因此,如果您正在创建更新图形的回调的UI,则UI应在尝试执行此操作之前,在某些情况下,UI应遵循哪个交互模式是活动的,如果有的话。
当你将不同的三维旋转行为分配给不同的子图
通过模式对象来连接坐标轴,然后使用纳瓦斯
功能,用鼠标操纵的轴的行为将携带到链接轴上,而不管先前为其他轴设置的行为如何。
使用工具栏上的Rotate3D工具在绘图上启用和禁用Rotate3D模式,或选择旋转3D.从图的工具菜单。