Delete triangulations outside the outline polygon and z value manipulation

5 vues (au cours des 30 derniers jours)
zzzzz Sap
zzzzz Sap le 4 Avr 2011
Commenté : Yonni f le 26 Oct 2022
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

Réponses (1)

Paul Rötzer
Paul Rötzer le 17 Oct 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 commentaire
Yonni f
Yonni f le 26 Oct 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);

Connectez-vous pour commenter.

Catégories

En savoir plus sur Delaunay Triangulation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by