I am trying to triangulate a specified region along a 2d plane. The region i wish to tringualte is specified by x and y cooridantes and the lines joining each of these points. However when I use delaunyTriangulation it triangulates the entire region, including the parts I wish to leave out. I have inserted an image below.
Is there anyway to specify the boundary or region of which I would like to triangulate or remove the large unwated trinagles from the triangulation?
Thanks
untitled.jpg

3 Kommentare

darova
darova am 7 Jun. 2019
If you have boundaries of your region use inpolygon() to indicate points inside and then triangulation
Robin Pillar
Robin Pillar am 7 Jun. 2019
I already have the points which I have included an image below. What I want is to triangulate the narrow region between the points but not outside as keeps happening
untitled.jpg
darova
darova am 7 Jun. 2019
Can you please attach this data?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

KSSV
KSSV am 7 Jun. 2019

1 Stimme

Read about delaunayTriangulation , you can provide edge constraints. On providing these constraints; you can avoid such triangles.
DT = delaunayTriangulation(x,y,C)

7 Kommentare

Robin Pillar
Robin Pillar am 7 Jun. 2019
I've tried this and used the edges which are the outline of the shape I've shown above as the constraints and I still get it triangulating the area outside the narrow region I want
KSSV
KSSV am 7 Jun. 2019
Attach your data....I can work on it on Monday only...weekend :)
Robin Pillar
Robin Pillar am 10 Jun. 2019
Data attached
YOu have other option: explore alphashape
data = importdata('data.txt') ;
x = data(:,1) ; y = data(:,2) ;
% dt = delaunayTriangulation(x,y) ;
shp = alphaShape(x,y) ;
shp.Alpha = 0.04 ;
plot(shp)
YOu can play around with value of shp.Alpha. Meanwhile I will try delaunay on the data and let you know. Actually the points (x,y) are not in order, we need to arrange them in order to provide constraints.
untitled.bmp
I have arranged the points Point.txt in an order and run delaunayTriangulation. I am attaching the data and code here.
data = importdata('data.txt') ;
x = data(:,1) ; y = data(:,2) ;
p = (1:length(x))' ;
C = [p(1:end-1) p(2:end)] ;
dt = delaunayTriangulation(x,y,C) ;
figure
triplot(dt)
xnew = dt.Points(:,1) ; ynew = dt.Points(:,2) ;
isInside = isInterior(dt) ; % Find triangles inside the constrained edges
tri = dt(isInside, :); % Get end point indices of the inner triangles
figure
triplot(tri,xnew,ynew);
untitled.bmp
darova
darova am 11 Jun. 2019
KSSV, how did you order those points? (Manually?)
KSSV
KSSV am 11 Jun. 2019
I used another software which my colleague uses...:)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Gefragt:

am 7 Jun. 2019

Kommentiert:

am 11 Jun. 2019

Community Treasure Hunt

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

Start Hunting!

Translated by