上下文菜单rotate3d作品一次!

1视图(30天)
阿兰
阿兰 2014年7月31日
回答: 将杰克逊 2016年7月21日
你好,
我与MatlabR2012b和uicontrol。
我想激活上下文菜单到斧头
  • 之间交换rotate3d /缩放/保存图片
  • 斧成图(包含uicontrol)。
——函数(:ctx_save)和缩放:一切都是正确的
——ROTATE3D:它只有一次! ! !
(代码)
场景: 运行函数context_menu_rotate_zoom
(其他函数ctx_save ctx_rotate ctx_zoom将在独立文件)
  • 正确的按钮到无花果:上下文菜单(旋转/缩放/保存)
  • 正确的按钮进入斧:上下文菜单(旋转/缩放/保存)
  • 正确的按钮表面:不过没关系因为hittest
= = 1 /缩放:右按钮并选择上下文菜单(弹出窗口+缩放):没关系
您可以使用左变焦按钮
你可以点击右键上下文菜单来缩放并保存几次. .没关系
正确的按钮进入图:没有!
问题1 > >“变焦”desactivate父上下文菜单吗?
= = 2.1 /右按钮并选择上下文菜单:旋转(弹出窗口+旋转):没关系你可以旋转图片
= = 2.2 /右按钮并选择上下文菜单上第二次旋转:(弹出窗口+旋转):没关系
= = 2.3 /右按钮……rotate3d上下文菜单显示:重置到原始视图/ Goto x z……
问题2 > >我怎么能覆盖上下文菜单ROTATE3D同样适合放大吗?
谢谢你的帮助!阿兰
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
函数context_menu_rotate_zoom
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%的斧成图
myfig =图(菜单条的,“没有”);
myaxe =轴;
%绘制的东西
轴(myaxe);
vis3d;
(X, Y) = meshgrid (5:0.1:5 5:0.1:5);
页= plot3 (X, Y, X * X + Y * Y);
%创建回调
var_Rotation = strcat (“ctx_Rotation (”num2str (myaxe“% .16f”),”),“);
var_Zoom = strcat (“ctx_Zoom (”num2str (myaxe“% .16f”),”),“);
var_Save = strcat (“ctx_Save (”num2str (myaxe“% .16f”),”),“);
%
%创建上下文菜单的图
cmenu_fig = uicontextmenu;
uimenu (cmenu_fig“标签”,“旋转”,“回调”,var_Rotation);
uimenu (cmenu_fig“标签”,“放大”,“回调”,var_Zoom);
uimenu (cmenu_fig“标签”,“保存”,“回调”,var_Save);
集(myfig,“uicontextmenu”,cmenu_fig);
%的上下文菜单创建斧……
cmenu_axe = uicontextmenu;
uimenu (cmenu_axe“标签”,“旋转”,“回调”,var_Rotation);
uimenu (cmenu_axe“标签”,“放大”,“回调”,var_Zoom);
uimenu (cmenu_axe“标签”,“保存”,“回调”,var_Save);
集(myaxe,“uicontextmenu”,cmenu_axe);
结束
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
函数ctx_Zoom (monaxe)
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%创建回调
var_Rotation = strcat (“ctx_Rotation (”num2str (monaxe“% .16f”),”),“);
var_Zoom = strcat (“ctx_Zoom (”num2str (monaxe“% .16f”),”),“);
var_Save = strcat (“ctx_Save (”num2str (monaxe“% .16f”),”),“);
%创造contextuel缩放的菜单
cmenu_zoom = uicontextmenu;
uimenu (cmenu_zoom“标签”,“旋转”,“回调”,var_Rotation);
uimenu (cmenu_zoom“标签”,“放大”,“回调”,var_Zoom);
uimenu (cmenu_zoom“标签”,“保存”,“回调”,var_Save);
%设置(monaxe uicontextmenu, cmenu);
%覆盖上下文菜单的放大
hZoom =放大;
变焦(“关闭”)%如果不能改变上下文放大!
集(hZoom,“UIContextMenu”,cmenu_zoom);
变焦(“上”)
对话框(“变焦上下文菜单”);
结束
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
函数ctx_Rotation (monaxe)
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%创建回调
var_Rotation = strcat (“ctx_Rotation (”num2str (monaxe“% .16f”),”),“);
var_Zoom = strcat (“ctx_Zoom (”num2str (monaxe“% .16f”),”),“);
var_Save = strcat (“ctx_Save (”num2str (monaxe“% .16f”),”),“);
%建立contextuel菜单
cmenu_rot = uicontextmenu;
uimenu (cmenu_rot“标签”,“旋转”,“回调”,var_Rotation);
uimenu (cmenu_rot“标签”,“放大”,“回调”,var_Zoom);
uimenu (cmenu_rot“标签”,“保存”,“回调”,var_Save);
%覆盖rotate3d上下文菜单
hrotate = rotate3d;
rotate3d (“关闭”)
集(hrotate,“UIContextMenu”,cmenu_rot);
rotate3d (“上”)
对话框(“旋转上下文菜单”);
结束
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
函数ctx_Save (monaxe)
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%创建回调
var_Rotation = strcat (“ctx_Rotation (”num2str (monaxe“% .16f”),”),“);
var_Zoom = strcat (“ctx_Zoom (”num2str (monaxe“% .16f”),”),“);
var_Save = strcat (“ctx_Save (”num2str (monaxe“% .16f”),”),“);
% contextuel创建菜单的斧子
cmenu_axe = uicontextmenu;
uimenu (cmenu_axe“标签”,“旋转”,“回调”,var_Rotation);
uimenu (cmenu_axe“标签”,“放大”,“回调”,var_Zoom);
uimenu (cmenu_axe“标签”,“保存”,“回调”,var_Save);
集(monaxe,“uicontextmenu”,cmenu_axe);
对话框(“保存图像上下文菜单”);
结束
结束
1评论
derboo
derboo 2016年7月14日
嘿,阿兰,
我知道它已经很长一段时间以来你问这个问题,但是我现在面临着同样的问题。
当我与一个菜单项创建一个UIContextMenu旋转,旋转UIContextMenu我可以覆盖标准。一切看起来很好,当我点击这个菜单,旋转模式被激活。当我再次点击右键时,我还发现UIContextMenu,又可以关闭旋转。但是当我转动轴,我试着打开上下文菜单,我的上下文菜单已经重置与标准rotate3d上下文菜单:重置到原始视图/ Goto x z
你还在你的问题描述了这种行为。
你或其他人找到了一个解决办法吗?(我使用Matlab 2013 b)
谢谢你的帮助,简

登录置评。

答案(1)

将杰克逊
将杰克逊 2016年7月21日
你好,
这是一个错误在MATLAB在R2014a固定。就像你说的,在旋转,旋转将重置一些用户设置在下一个旋转前值。

类别

找到更多的在交互控制和回调帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!