Triangulation within specified region

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 件のコメント

darova
darova 2019 年 6 月 7 日
If you have boundaries of your region use inpolygon() to indicate points inside and then triangulation
Robin Pillar
Robin Pillar 2019 年 6 月 7 日
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 2019 年 6 月 7 日
Can you please attach this data?

サインインしてコメントする。

 採用された回答

KSSV
KSSV 2019 年 6 月 7 日

1 投票

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

7 件のコメント

Robin Pillar
Robin Pillar 2019 年 6 月 7 日
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 2019 年 6 月 7 日
Attach your data....I can work on it on Monday only...weekend :)
Robin Pillar
Robin Pillar 2019 年 6 月 10 日
Data attached
KSSV
KSSV 2019 年 6 月 11 日
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
KSSV
KSSV 2019 年 6 月 11 日
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 2019 年 6 月 11 日
KSSV, how did you order those points? (Manually?)
KSSV
KSSV 2019 年 6 月 11 日
I used another software which my colleague uses...:)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeDelaunay Triangulation についてさらに検索

質問済み:

2019 年 6 月 7 日

コメント済み:

2019 年 6 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by