Learn R Programming

interp (version 1.1-6)

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)

Value

A list with elements i1,i2,i3 containing nodal indexes, in counterclockwise order, of the vertices of a triangle containing \(P=(x,y)\). tr contains the triangle index and

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).

Arguments

tri.obj

an triangulation object of class triSht

x

x-coordinate of the point

y

y-coordinate of the point

Author

Albrecht Gebhardt <albrecht.gebhardt@aau.at>, Roger Bivand <roger.bivand@nhh.no>

See Also

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

Examples

Run this code
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