isSelfIntersecting function gives apparently incorrect result
显示 更早的评论
I'm trying to use the isSelfIntersecting function from the Lidar Toolbox to check whether or not a surfaceMesh object is self intersecting. In most cases it works fine, but in certain situations it returns true when the surface is not self intersecting.
The problem seems to arise in situations where all vertices in the mesh are contained, or nearly contained, by one plane (as in the example below). I wondered if it might be an issue with leaving the face normals undefined, but I get the same issue even if I define them when calling surfaceMesh (not included in example for readability).
Is this an issue with the way I'm defining the mesh and using the function? Or is this a known issue with isSelfIntersecting?
Many thanks for any help!
% define the vertices for the mesh
vertices = [0 0.0785926524819716 0.0150000000000000; ...
0.00223394141607314 0.0787352254127876 0.0140425952680485; ...
0.00428764473102951 0.0788687035475108 0.0131624353567936; ...
0 0.0822253462122803 0.0150000000000000; ...
0.00224235572430482 0.0822979726488426 0.0140389888997977; ...
0.00430286261362254 0.0823659662099516 0.0131559129739490; ...
0 0.0860000000000000 0.0150000000000000; ...
0.00225109241982507 0.0860000000000000 0.0140352443565181; ...
0.00431866355685131 0.0860000000000000 0.0131491406913786];
%define the faces for the mesh
faces = [1 2 5;
1 4 5;
2 3 6;
2 5 6;
4 5 8;
4 7 8;
5 6 9;
5 8 9];
%create the surface mesh object
mesh = surfaceMesh(vertices,faces);
%plot the mesh and verify visually that it does not self intersect
%(it should be an inclined plane sloping downward along the x-axis)
patch('vertices',vertices,'faces',faces,'EdgeColor',[1 .5 0],'FaceColor',[.5 1 .5]);
view(3)
%call isSelfintersecting, returns true despite mesh appearing to be
%non-self intersecting
isSelfIntersecting(mesh)
采纳的回答
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Labeling, Segmentation, and Detection 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
