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.
tri.find(tri.obj,x,y)
tri.obj |
an triangulation object of class |
x |
x-coordinate of the point |
y |
y-coordinate of the point |
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).
Albrecht Gebhardt <albrecht.gebhardt@aau.at>, Roger Bivand <roger.bivand@nhh.no>
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)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.