3

私が意味することを正確に確認するには、次のようにしてください。

  1. 以下のコードを実行します

    figure
    plot(peaks)
    cameratoolbar('SetMode','orbit');
    cameratoolbar('Show');
    
  2. プロット上にマウスを移動します。左クリックを押したまま、マウスを左右に動かしてから離します。陰謀が永遠に狙撃を開始するのを見るでしょう.

    赤いstopサインボタンをクリックすると、回転が止まります。ただし、回転するプロットをプログラムで停止したいと思います。何かご意見は?

4

1 に答える 1

0

エディターで開くと、Figure のコールバックを一時的に 内のネストされた/サブ関数に設定することによって、周回cameratoolbarが行われていることがわかります。WindowButton*cameratoolbar

私が行った 1 分間の斜め読みから判断すると、カメラの軌道自体はorbitPangca、 を再帰的に呼び出す パン/ズーム関数を呼び出すことによって達成されますcameratoolbar。この再帰ループは、ツールバー ボタンからのコールバックによって切り替えられるフラグによって制御されます。これらのフラグは、再帰ループの各反復の動作を変更します。

これが実際に当てはまる場合、プロットが周回している間、プログラムで制御できるソースからのコマンドをMatlabが受け入れていないことを意味します。ボタンを押しただけで反応します。これは、プログラムでモーションを停止したい場合、cameratoolbarこれを可能にするためにハックする必要があることを意味します-最も移植性の高いオプションではありません.

頭に浮かんだもう 1 つのアイデアは、どのコールバックが軌道に使用されているかを把握し、WindowButton*そこに独自の関数を定義することです。幸運なことに、両方のコールバックが反復ごとに呼び出されるcameratoolbarように MathWorks が実装されているため、フラグをプログラムで制御できます。しかし -- これは自分でテストする必要があります。

于 2012-08-16T07:26:40.087 に答える