Detecting cursor position inside or outside an object.
13 views (last 30 days)
Show older comments
Hi Everyone,
I have a problem and can not think of a how to approach it? Here it goes. I have an binary image containing a random line object inside a rectangle. Using the bwboundaries, i know the boundary points of the rectangle and random object. Now when i move the cursor, i get its current position as shown below.
[B,L,N,A] = bwboundaries(BW);
%Determine the screen size
SS = get(0,'ScreenSize');sh=SS(4); sw=SS(3);
%Determine current location of cursor
PL = get(0,'PointerLocation');
Yc=PL(1); Xc=sh-PL(2);
How can i know, if my current cursor location (Xc,Yc) is: 1) Outside the rectangle? Then perform single "beep" 2) inside the rectangle but outside the random object? perform "beep; pause(0.5); beep" 3) inside the object? Perform "beep; pause(0.5); beep; pause(0.5); beep"
Thanks RR
0 Comments
Accepted Answer
Jan
on 20 Jul 2011
The is the pointer location relative to the screen:
PL = get(0,'PointerLocation');
But I assume you want it either relative to the figure or an axes:
PLfig = get(gcf, 'CurrentPoint');
PLaxes = get(gca, 'CurrentPoint');
For live updates of the figure's current point value an WindowButtonMotionFcn must be defined.
For the in-polygon test see Walter's answer.
More Answers (1)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!