Locate a point in a triangulation

This subroutine locates a point \(P=(x,y)\) relative to a triangulation created by tri.mesh. If \(P\) is contained in a triangle, the three vertex indexes are returned. Otherwise, the indexes of the rightmost and leftmost visible boundary nodes are returned.

Keywords
spatial
Usage
tri.find(tri.obj,x,y)
Arguments
tri.obj

an triangulation object of class triSht

x

x-coordinate of the point

y

y-coordinate of the point

Value

A list with elements i1,i2,i3 containing nodal indexes, in counterclockwise order, of the vertices of a triangle containing \(P=(x,y)\). bc contains the barycentric coordinates of \(P\) w.r.t. the found triangle.

If \(P\) is not contained in the convex hull of the nodes this indices are 0 (bc is meaningless then).

See Also

triSht, print.triSht, plot.triSht, summary.triSht, triangles, convex.hull

Aliases
  • tri.find
Examples
# NOT RUN {
data(franke)
tr<-tri.mesh(franke$ds3$x,franke$ds3$y)
plot(tr)
pnt<-list(x=0.3,y=0.4)
triangle.with.pnt<-tri.find(tr,pnt$x,pnt$y)
attach(triangle.with.pnt)
lines(franke$ds3$x[c(i1,i2,i3,i1)],franke$ds3$y[c(i1,i2,i3,i1)],col="red")
points(pnt$x,pnt$y)
# }
Documentation reproduced from package interp, version 1.0-33, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.