我如何不断跟踪/记录我的光标在一个轴的坐标图窗口吗?

25日视图(30天)
我有一个图包含一个轴和文本框:
f =图;
ax =轴(f,“单位”,“归一化”,“位置”,(。1。3 .8 .6]);
txt =注释(f,“文本框”,“字形大小”12
“单位”,“归一化”,“位置”,(。1。1。35 .06],
“写成BackgroundColor”,“白色”);
我怎么继续跟踪光标的位置和记录在文本框?我怎么使跟踪停止当用户单击某个按钮?

接受的答案

MathWorks支金宝app持团队
MathWorks支金宝app持团队 2022年10月13日
编辑:MathWorks支金宝app持团队 2022年10月13日
不断跟踪/记录用户的光标的位置,建立一个“WindowButtonMotionFcn”回调你的图:
这个回调将触发任何时候光标。设置回调函数句柄指向一个函数,得到轴的“CurrentPosition”文本框并显示这些坐标:
停止跟踪光标,设立一个“WindowButtonDownFcn”回调你的图:
这个回调将触发任何时候用户内左击图窗口。设置回调函数句柄指向一个函数,将“WindowButtonMotionFcn”属性设置为一个空字符串。这将防止跟踪/录音功能鼠标移动时被调用。
下面是一个例子,把所有这些想法在一起。再一次,一个回调时触发用户移动鼠标在图中,和鼠标坐标显示在文本框中。这些坐标的记录将永久停止当用户上左击
鼠标,从而触发“WindowButtonDown”回调。
%创建图用斧子和文本框
f =图;
ax =轴(f,“单位”,“归一化”,“位置”,(。1。3 .8 .6]);
txt =注释(f,“文本框”,“字形大小”12
“单位”,“归一化”,“位置”,(。1。1。35 .06],
“写成BackgroundColor”,“白色”);
%设置回调图
f。WindowButtonMotionFcn = {@mouseMove ax, txt};
f。WindowButtonDownFcn = @stopTracking;
%定义回调函数
函数mouseMove (ax, ~, ~ txt)
%得到x和y光标的位置
xPos = ax.CurrentPoint (1,1);
yPos = ax.CurrentPoint (1、2);
%在文本框中显示坐标
三种。字符串=“x:“+ xPos +y:“+ yPos;
结束
函数stopTracking (f ~)
%停止向mouseMove回调
f。WindowButtonMotionFcn =”“;
结束
如果您不熟悉回调,这是一个基本的介绍在MATLAB中使用回调函数:
//www.tatmou.com/help/matlab/creating_plots/create-callbacks-for-graphics-objects.html
,以下是一些回调图窗口:

更多的答案(0)

类别

找到更多的在交互控制和回调帮助中心文件交换

下载188bet金宝搏


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!