请亲切地看看我的意思:
运行以下代码
figure
plot(peaks)
cameratoolbar('SetMode','orbit');
cameratoolbar('Show');
将鼠标移动到绘图上。按住左键单击,将鼠标向左移动,然后释放单击。你会看到情节开始永远狙击。
现在,如果你点击红色的stop
符号按钮,它就会停止旋转。但是,我想以编程方式停止旋转绘图。有什么想法吗?
答案 0 :(得分:0)
在编辑器中打开cameratoolbar
会显示轨道运行是通过将数字的WindowButton*
回调暂时设置为cameratoolbar
内的嵌套/子功能来完成的。
从我所做的1分钟对角线读取来看,相机轨道本身是通过调用平移/缩放功能orbitPangca
来完成的,该功能以递归方式调用cameratoolbar
。此递归循环由标志控制,标志由工具栏按钮的回调切换。这些标志会改变递归循环中每次迭代的行为。
如果情况确实如此,那么暗示Matlab不会接受来自任何源程序控制的命令,而情节是轨道运行。它只响应按钮按下。这意味着如果你想以编程方式停止动作,你必须破解cameratoolbar
以允许这一点 - 而不是最便携的选项。
刚想到的另一个想法是弄清楚哪个WindowButton*
回调用于轨道,并在那里定义你自己的功能。您可能只是幸运的是,MathWorks实现了cameratoolbar
,这样每次迭代都会调用两个回调,这样就可以对标志进行编程控制。但是 - 你必须自己测试一下。