How can a ButtonDownFcn in a patch or line handle detect which polygon or segment was clicked?
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I want to detect user clicks on a polygon mesh I've drawn using patch(), and determine which polygon was clicked in. Although Matlab must have computed that information in order to detect the mouse click, I can't find it in the arguments passed to the ButtonDownFcn that I install into the patch handle. The arguments are a handle to the patch and a Hit structure that includes the IntersectionPoint but nothing else of much use.
In principle I can calculate which polygon contains that point, but I would just be repeating work that Matlab has presumably done already. Can I get it directly?
The same question applies to clicks on line objects.
0 Commenti
Risposte (2)
John D'Errico
il 24 Feb 2015
When I did this in the past (admittedly some years ago), I simply put that information into the callback I assigned to each object in the plot.
2 Commenti
John D'Errico
il 24 Feb 2015
Yeah, I did not say it was trivial to do. In the case I had, I was indeed forced to plot each piece separately, with a callback that was unique to that object.
matt dash
il 24 Feb 2015
I dont believe that Matlab has already calculated which face/edge/marker you clicked (I don't think hittest works that way). Assuming it's a 2D scene, for patches, you can use inpolygon (or http://www.mathworks.com/matlabcentral/fileexchange/27840-2d-polygon-interior-detection on the file exchange which may be faster).
0 Commenti
Vedere anche
Categorie
Scopri di più su Polygons in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!