How to get pointer location as grid point of an axes in matlab guide?
    9 views (last 30 days)
  
       Show older comments
    
    Vinothkumar Sethurasu
 on 19 May 2021
  
    
    
    
    
    Commented: Vinothkumar Sethurasu
 on 24 May 2021
            In MATLAB GUIDE, i have a application to place a imgae object on the exact grid point loaction of an axes.
I have a solution to place the object on random loaction on the axes through getting the pointer location from the command " get(0,'PointerLocation')".
For the current application, the pointer location need to be exact grid point of the axes.
Suggest me a solution.
5 Comments
Accepted Answer
  Jan
      
      
 on 21 May 2021
        
      Edited: Jan
      
      
 on 21 May 2021
  
      It is hard to convert the global mouse position on the screen to a position in the axes. Therefore get(0,'PointerLocation') is not useful. The axes contain a 'CurrentPoint' property already, which can be used directly.
I do not understand, why or where you create new axes objects.
what about this example:
function [] = kkkj
AxesH = axes('XLim', [0 1], 'YLim', [0 0.5], ...
             'Xtick', 0:0.01:1, 'Ytick', 0:0.0355:0.5, ...
             'XGrid', 'on', 'YGrid', 'on', ...
             'NextPlot', 'add', ...   % as: hold on
             'ButtonDownFcn', @myAxesClick);
end
function myAxesClick(AxesH, EventData)
P     = get(AxesH, 'CurrentPoint');   % Mouse click position in Axes
XTick = get(AxesH, 'XTick');          % X and Y grid
YTick = get(AxesH, 'YTick');
[~, xm] = min(abs(P(1, 1) - XTick));  % Find nearest X and Y grid point
X = XTick(xm);
[~, ym] = min(abs(P(1, 2) - YTick));
Y = YTick(ym);
plot(X, Y, 'pb', 'MarkerSize', 20);  % Plot a star
end
3 Comments
  Jan
      
      
 on 21 May 2021
				interp1 is not implemented efficiently. This is not a problem, if the code involves a GUI interaction with a user, because waiting for the mouse click is still the bottleneck.
More Answers (0)
See Also
Categories
				Find more on Graphics Objects 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!