コールバック関数に、クリックするたびにそのクリック回数を渡す方法を教えてください。
Show older comments
例えば、次のようなクリックの都度、コールバック関数を呼ぶルーチンがあった場合、
クリックの回数(何回目)をコールバック関数に渡す方法をおしえていただけないでしょうか?
この例だと、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 Comments
高木 範明
on 23 Oct 2023
Atsushi Ueno
on 23 Oct 2023
>コールバックは、いずれもソースとイベントの 2 つの入力引数を受け入れます。これらの 2 つ以外の追加の入力引数を受け入れるコールバックを指定するには、cell 配列を使用します。......(以下省略)
とあります。
余談ですが、質問のプログラムは同じ UIAxes に対し fimplicit 関数を5回実行し、得られた ImplicitFunctionLine オブジェクトを5個の配列に格納しています。hold onを書かないと5重の楕円が描画されませんし、'ButtonDownFcn'の設定を5回繰り返しても1回実行するのと同じになると思います。
コールバック関数が呼び出されるのは、紐付けたUI コンポーネント(四角形内のどこか)がクリックされた時であり、UIAxes内でクリックした座標に近い曲線を判定するには、その為のロジックが必要になると思います。
高木 範明
on 23 Oct 2023
高木 範明
on 24 Oct 2023
Answers (0)
Categories
Find more on モデル、ブロックおよび端子のコールバック in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!