3

要明白我的意思,请:

  1. 运行下面的代码

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

    现在,如果您单击红色的stop签名按钮,它将停止旋转。但是我想以编程方式停止旋转图。有什么想法吗?

4

1 回答 1

0

在编辑器中打开cameratoolbar显示轨道是通过将图形的WindowButton*回调临时设置为cameratoolbar.

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

如果情况确实如此,则意味着 Matlab 不接受来自您可以编程控制的任何来源的命令,而情节正在运行。它只会响应按钮按下。这意味着,如果您想以编程方式停止运动,则必须破解cameratoolbar以允许这样做 - 这不是最便携的选项。

另一个突然想到的想法是确定哪个WindowButton*回调用于轨道,并在那里定义您自己的函数。您可能很幸运,MathWorks 实现cameratoolbar了每次迭代都会调用两个回调,这将使您能够以编程方式控制标志。但是——你必须自己测试一下。

于 2012-08-16T07:26:40.087 回答