interp (version 1.0-33)

tri.find: Locate a point in a triangulation

Description

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.

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

Examples

Run this code
# 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)
# }

Run the code above in your browser using DataLab