Matlab:当摄像机处于轨道模式时,如何以编程方式停止旋转绘图

时间:2012-08-15 20:54:41

标签: matlab matlab-figure matlab-guide

请亲切地看看我的意思:

  1. 运行以下代码

    figure
    plot(peaks)
    cameratoolbar('SetMode','orbit');
    cameratoolbar('Show');
    
  2. 将鼠标移动到绘图上。按住左键单击,将鼠标向左移动,然后释放单击。你会看到情节开始永远狙击。

    现在,如果你点击红色的stop符号按钮,它就会停止旋转。但是,我想以编程方式停止旋转绘图。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

在编辑器中打开cameratoolbar会显示轨道运行是通过将数字的WindowButton*回调暂时设置为cameratoolbar内的嵌套/子功能来完成的。

从我所做的1分钟对角线读取来看,相机轨道本身是通过调用平移/缩放功能orbitPangca来完成的,该功能以递归方式调用cameratoolbar。此递归循环由标志控制,标志由工具栏按钮的回调切换。这些标志会改变递归循环中每次迭代的行为。

如果情况确实如此,那么暗示Matlab不会接受来自任何源程序控制的命令,而情节是轨道运行。它只响应按钮按下。这意味着如果你想以编程方式停止动作,你必须破解cameratoolbar以允许这一点 - 而不是最便携的选项。

刚想到的另一个想法是弄清楚哪个WindowButton*回调用于轨道,并在那里定义你自己的功能。您可能只是幸运的是,MathWorks实现了cameratoolbar,这样每次迭代都会调用两个回调,这样就可以对标志进行编程控制。但是 - 你必须自己测试一下。