グラフ上の座標取得

31 ビュー (過去 30 日間)
Mamoru Mabuchi
Mamoru Mabuchi 2020 年 6 月 16 日
回答済み: michio 2020 年 6 月 23 日
グラフ上の座標を取得する関数ginputは、マウスの左ボタンを押した時の座標を取得できますが、
左ボタンを押した時と、左ボタンを放した時両方の座標を取得する方法はありますか?

回答 (2 件)

Kenta
Kenta 2020 年 6 月 16 日
close all;
figure;
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
scatter(x,y)
[x1,y1] = ginput;
figure;plot(x1,y1);
放した時ではないですが、複数回左クリックして、最後にenterキーを押せば回数分の座標が得られますがいかがでしょうか。

michio
michio 2020 年 6 月 23 日
こちらの Qiita 投稿が参考になると思います。
マウスクリック時(WindowButtonDownFcn)と離した時(WindowButtonUpFcn)の挙動をコールバック関数で定義する、という多少込み入った方法ですが参考になりましたら。
以下一部抜粋
figH = figure(); % figH: Figureオブジェクト
figH.MenuBar = 'none'; % メニューをオフ
figH.WindowButtonDownFcn = @WindowButtonDownFcn_figH; % マウスボタン押下時のコールバック関数を指定
figH.WindowButtonMotionFcn = @WindowButtonMotionFcn_figH; % マウスボタン移動時のコールバック関数を指定
figH.WindowButtonUpFcn = @WindowButtonUpFcn_figH; % マウスボタンリリース時のコールバック関数を指

カテゴリ

Help Center および File Exchangeグラフィックス オブジェクトのプロパティ についてさらに検索

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!