Delete triangulations outside the outline polygon and z value manipulation
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have an outline polygon traced using impoly, over an image of an outline. When I triangulate it using delaunay command, triangulations extend outside the polygon. how to delete these unwanted triangles, and then manipulate the z values of the polygon, to change its orientation? I'm using Matlab R2008a
0 comentarios
Respuestas (1)
Paul Rötzer
el 17 de Oct. de 2022
I know the answer comes very late but i struggled with the same problem today.
For newer version of matlab the following should work:
% P contains the points on outline of polyshape
polyin = polyshape(P);
EdgeConstraint = [(1:length(P))' [(2:length(P))'; 1]];
DT = delaunayTriangulation(P, EdgeConstraint)
%% remove outside triangles
C = incenter(DT);
TF = isinterior(polyin, C);
InsideTriangles = DT.ConnectivityList(TF, :);
1 comentario
Yonni f
el 26 de Oct. de 2022
Amazing. I was just strugging on the same thing and I found your response to a decade old post.
To ellaborate a bit more on Paul's answer, I edited the triangulation by calling a new structure called dts and then removing the connections outside the border:
dts = struct('Points', DT.Points, 'ConnectivityList', DT.ConnectivityList);
dts.ConnectivityList(~TF, :) = [];
x=triangulation(dts.ConnectivityList, dts.Points);
triplot(x);
Ver también
Categorías
Más información sobre Delaunay Triangulation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!