コールバック関数に、クリックするたびにそのクリック回数を渡す方法を教えてください。
Mostra commenti meno recenti
例えば、次のようなクリックの都度、コールバック関数を呼ぶルーチンがあった場合、
クリックの回数(何回目)をコールバック関数に渡す方法をおしえていただけないでしょうか?
この例だと、click=10しか渡すことができませんが、これを1,2,3,・・・とクリックの度にカウントアップできないでしょうか?
【メイン】
Ia_start = 1;
Ia_incre = 1;
Ia_end = 5;
Counter = 0;
click = 10;
for Ia = Ia_start : Ia_incre : Ia_end
Counter = Counter + 1;
fp(Counter) = fimplicit(app.UIAxes,@(id,iq) id.^2+iq.^2 - Ia.^2);
set(fp(Counter), 'ButtonDownFcn',@(src, event) lineCallback(app,src,event,click);
end
【コールバック】
methods (Access = private)
function lineCallback(app,src,event,click)
・
・
・
4 Commenti
高木 範明
il 23 Ott 2023
Atsushi Ueno
il 23 Ott 2023
>コールバックは、いずれもソースとイベントの 2 つの入力引数を受け入れます。これらの 2 つ以外の追加の入力引数を受け入れるコールバックを指定するには、cell 配列を使用します。......(以下省略)
とあります。
余談ですが、質問のプログラムは同じ UIAxes に対し fimplicit 関数を5回実行し、得られた ImplicitFunctionLine オブジェクトを5個の配列に格納しています。hold onを書かないと5重の楕円が描画されませんし、'ButtonDownFcn'の設定を5回繰り返しても1回実行するのと同じになると思います。
コールバック関数が呼び出されるのは、紐付けたUI コンポーネント(四角形内のどこか)がクリックされた時であり、UIAxes内でクリックした座標に近い曲線を判定するには、その為のロジックが必要になると思います。
高木 範明
il 23 Ott 2023
高木 範明
il 24 Ott 2023
Risposte (0)
Categorie
Scopri di più su モデル、ブロックおよび端子のコールバック in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!