要明白我的意思,请:
运行下面的代码
figure
plot(peaks)
cameratoolbar('SetMode','orbit');
cameratoolbar('Show');
将鼠标移到绘图上。按住左键单击,将鼠标左移或右移,然后释放单击。您会看到情节永远开始狙击。
现在,如果单击红色的
stop
符号按钮,它将停止旋转。但是,我想以编程方式停止旋转图。有什么想法吗? 最佳答案
在编辑器中打开cameratoolbar
可以发现,通过将图形的WindowButton*
回调临时设置为cameratoolbar
中的嵌套/子函数,可以完成环绕运动。
从我所做的1分钟对角线通读来看,摄像机轨道本身是通过调用平移/缩放功能orbitPangca
(递归调用cameratoolbar
)来实现的。此递归循环由标志控制,这些标志由工具栏按钮中的回调进行切换。这些标志会更改递归循环中每次迭代的行为。
如果确实如此,则意味着在轨迹运行时,Matlab不接受您拥有程序控制权的任何来源的命令。它只会响应按钮的按下。这意味着,如果要以编程方式停止运动,则必须破解cameratoolbar
才能做到这一点-不是最方便的选择。
另一个突然想到的想法是弄清楚哪个WindowButton*
回调用于该轨道,并在那里定义自己的函数。您可能只是很幸运,MathWorks实现了cameratoolbar
,以便每次回调都调用两个回调,这将使您能够对标志进行编程控制。但是-您必须自己进行测试。