How can a ButtonDownFcn in a patch or line handle detect which polygon or segment was clicked?
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (2)
John D'Errico
el 24 de Feb. de 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 comentarios
John D'Errico
el 24 de Feb. de 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
el 24 de Feb. de 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 comentarios
Ver también
Categorías
Más información sobre Polygons en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!