Filter löschen
Filter löschen

Delete triangulations outside the outline polygon and z value manipulation

6 Ansichten (letzte 30 Tage)
zzzzz Sap
zzzzz Sap am 4 Apr. 2011
Kommentiert: Yonni f am 26 Okt. 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

Antworten (1)

Paul Rötzer
Paul Rötzer am 17 Okt. 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 Kommentar
Yonni f
Yonni f am 26 Okt. 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);

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Delaunay Triangulation finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by