Triangle or tetrahedron enclosing point
Find the triangles of a triangulation that enclose a set of query points.
Define the points and connectivity of a triangulation.
TP = [2.5 8.0; 6.5 8.0; 2.5 5.0; 6.5 5.0; 1.0 6.5; 8.0 6.5]; C = [5 3 1; 3 2 1; 3 4 2; 4 6 2]; TR = triangulation(C,TP);
Define two query points.
P = [2.25 7; 6 6.5];
Plot the triangulation and the query points.
triplot(TR) hold on plot(P(:,1),P(:,2),'k*') ylim([4 9]) xlim([0 9])
Determine the IDs of the triangles that enclose each query point.
ID = pointLocation(TR,P)
ID = 2×1 1 3
Highlight the triangles that enclose the query points in red.
Find the tetrahedra of a 3-D triangulation that enclose a set of query points.
Create a Delaunay triangulation from a set of 3-D points.
rng('default') x = rand([20 1]); y = rand([20 1]); z = rand([20 1]); TR = delaunayTriangulation(x,y,z);
Find the IDs of the tetrahedra that enclose the query points, and compute the barycentric coordinates of the query points.
P = [0.7 0.6 0.3; 0.5 0.5 0.5]; [ID,B] = pointLocation(TR,P)
ID = 2×1 27 21
B = 2×4 0.5721 0.1340 0.2046 0.0893 0.6422 0.1900 0.1495 0.0183
P— Query points
Query points, specified as a 2-column matrix (2-D) or a 3-column matrix
P contains the x-coordinates,
y-coordinates, and (possibly)
z-coordinates of the query points.
x-coordinates of query points, specified as a column vector.
y-coordinates of query points, specified as a column vector.
z-coordinates of query points, specified as a column vector.
ID— Triangle or tetrahedra IDs
Triangle or tetrahedra IDs of the triangles or tetrahedra enclosing the
query points, returned as a column vector. A triangle or tetrahedron ID is
the row number of the corresponding triangle or tetrahedron in the
If a query point lies on the boundary of two or more triangles or tetrahedra, then the largest ID is returned.
NaN values for points
that are not located in a triangle or tetrahedron of the
B— Barycentric coordinates
Barycentric coordinates of each query point with respect to its enclosing triangle or tetrahedron, returned as a 3-column matrix (2-D) or a 4-column matrix (3-D).