Query points inside Delaunay triangulation
TF = isInterior( returns a column
vector of logical values that indicate whether the triangles in a 2-D constrained
Delaunay triangulation are inside a bounded geometric domain. An element of
TF is 1 (
true) when the corresponding
DT is inside the domain and 0
Compute and plot the triangles of a 2-D constrained Delaunay triangulation within a specified boundary.
Create a geometric domain whose shape is a square frame.
outerprofile = [-5 -5; -3 -5; -1 -5; 1 -5; 3 -5; 5 -5; 5 -3; 5 -1; 5 1; 5 3; 5 5; 3 5; 1 5; -1 5; -3 5; -5 5; -5 3; -5 1; -5 -1; -5 -3]; innerprofile = outerprofile.*0.5; P = [outerprofile; innerprofile];
Define the edge constraints.
outercons = [(1:19)' (2:20)'; 20 1;]; innercons = [(21:39)' (22:40)'; 40 21]; C = [outercons; innercons];
Create the constrained Delaunay triangulation.
DT = delaunayTriangulation(P,C);
Plot the triangulation, highlighting the inner and outer squares in red.
triplot(DT) hold on plot(DT.Points(innercons',1),DT.Points(innercons',2), ... '-r','LineWidth',2) plot(DT.Points(outercons',1),DT.Points(outercons',2), ... '-r','LineWidth',2) axis equal
Plot only the triangles between the inner and outer squares, highlighting the inner and outer squares in red.
figure TF = isInterior(DT); triplot(DT.ConnectivityList(TF,:),DT.Points(:,1),DT.Points(:,2)) hold on plot(DT.Points(outercons',1),DT.Points(outercons',2), ... '-r','LineWidth',2) plot(DT.Points(innercons',1),DT.Points(innercons',2), ... '-r','LineWidth',2) axis equal
DT— Constrained Delaunay triangulation
Constrained Delaunay triangulation, specified as a scalar 2-D
with a set of constrained edges that define a bounded geometric domain. A
bounded domain is a region enclosed by multiple constrained edges that do
not intersect or overlap.
isInterior can produce incorrect or inconsistent results
when boundary constraints intersect or overlap. To avoid this behavior, use
constraints that form one or multiple closed boundaries that do not intersect or
overlap. When boundary constraints are nested without intersections or overlaps,
the inside or outside status alternates across the boundaries.