How can a ButtonDownFcn in a patch or line handle detect which polygon or segment was clicked?
조회 수: 6 (최근 30일)
이전 댓글 표시
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
답변 (2개)
John D'Errico
2015년 2월 24일
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
John D'Errico
2015년 2월 24일
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
2015년 2월 24일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Polygons에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!