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