How to work with the current point feature in app designer?

24 views (last 30 days)
Hello,
The below code is working in Matlab but I am unable to execute this same thing in Matlab app designer.
fig = figure('Interruptible', 'off');
ax1 = subplot(1,2,1);
ax2 = subplot(1,2,2);
fig.WindowButtonMotionFcn = @(~,~) [];
t = timer('Period', 0.1, 'ExecutionMode', 'fixedRate', 'TimerFcn', {@mouseMotionCB, ax1, ax2});
start(t)
ginput(1)
stop(t);
delete(t);
function mouseMotionCB(fig, event, ax1, ax2)
currentPoint1 = ax1.CurrentPoint(1,1:3);
x1 = currentPoint1(1);
y1 = currentPoint1(2);
if (ax1.XLim(1)<x1)&&(x1<ax1.XLim(2)) && (ax1.YLim(1)<y1)&&(y1<ax1.YLim(2))
fprintf('This is axes 1, Current Point is %f %f %f\n', currentPoint1);
end
currentPoint2 = ax2.CurrentPoint(1,1:3);
x2 = currentPoint2(1);
y2 = currentPoint2(2);
if (ax2.XLim(1)<x2)&&(x2<ax2.XLim(2)) && (ax2.YLim(1)<y2)&&(y2<ax2.YLim(2))
fprintf('This is axes 2, Current Point is %f %f %f\n', currentPoint2);
end
end
I have created an 'app1.mlapp', but this code is not executing in app designer .Can anyone help me with this?
  2 Comments
Lavanya
Lavanya on 14 Sep 2022
ginput() is working , after the mouseclick values are printing in workspace.
It not displaying the values at figure window.
Error : Too many input arguments

Sign in to comment.

Answers (1)

Kevin Holly
Kevin Holly on 14 Sep 2022
Please see the app attached with the script for the callback function. Let me know if this addresses your problem.
Note, I also attached an app for the pop up window if you were interested in using this instead.
  6 Comments
Kevin Holly
Kevin Holly on 27 Sep 2022
I changed
brush(app.UIAxes,"on")
to
brush(app.UIAxes,'on')
and it worked for me in R2021b (see attached).
Is there a reason crossair.mlapp doesn't work for you?

Sign in to comment.

Categories

Find more on Visual Exploration 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!