Callback function for selecting triangular faces of patch objects

版本 1.0.0.0 (3.1 KB) 作者: Sandor Toth
The function can find the index of the face in a triangular patch object which was clicked on
270.0 次下载
更新时间 2017/1/11

查看许可证

The function can find the index of the face in a patch object which was clicked on by the mouse. The function should be used as a callback function for the ButtonDownFcn event of patch object and it will call a user defined function with the same arguments as the ButtonDownFcn call, but adding an extra argument, the face index. Thus the user defined
callback function will have the following header:
callbackfun(obj,hit,faceIndex)
The function can detect if the mouse click was on a face or on an edge of the patch object.
Input:
obj The patch object that calls the function.
hit Hit object that contains the point where the object was hit.
callbackfun User function that will be called in case of a click event on obj. It should have the following header:
callbackfun(obj,hit,faceIndex)
where face Index contains the index of the face that was clicked on, it can contain a single index or two depending on the selection type.
selection String defines three diferent selection criteria when the callbackfun() function will be called:
'face' The callbackfun() will be triggered if a face was clicked (numel(faceIndex)==1).
'edge' The callbackfun() will be triggered if an edge is clicked (numel(faceIndex)==2).
'all' The callbackfun() will be triggered for both faces and edges.
Example:
The color of any face of the red triangulated icosahedron will be
changed to green if clicked on.
mesh = icomesh(1);
V = mesh.Points;
F = mesh.ConnectivityList;
hPatch = patch('Faces',F,'Vertices',V,'FaceColor','r','EdgeColor','none');
axis equal
box on
view(3)
camlight('right')
hPatch.FaceColor = 'flat';
hPatch.FaceVertexCData = repmat([1 0 0],[size(F,1) 1]);
fun = @(obj,hif,face)set(obj,'FaceVertexCData',[obj.FaceVertexCData(1:(face-1),:); [0 1 0]; obj.FaceVertexCData((face+1):end,:)]);
hPatch.ButtonDownFcn = @(obj,hit)patchfacefcn(obj,hit,fun,'face');

引用格式

Sandor Toth (2024). Callback function for selecting triangular faces of patch objects (https://www.mathworks.com/matlabcentral/fileexchange/61078-callback-function-for-selecting-triangular-faces-of-patch-objects), MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R2016b
兼容任何版本
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
1.0.0.0

Added graphics.
Updated description.