Move Point To Nearest Line
Given a point pattern and a line segment pattern, this function moves each point to the closest location on a line segment.
- A point pattern (object of class
- A line segment pattern (object of class
For each point
x in the point pattern
X, this function
finds the closest line segment
y in the line segment pattern
Y. It then `projects' the point
x onto the line segment
y by finding the position
which is closest to
x. This position
z is returned,
along with supplementary information.
- A list with the following components. Each component has length equal to
the number of points in
X, and its entries correspond to the points of
Xproj Point pattern (object of class
"ppp"containing the projected points.
mapXY Integer vector identifying the nearest segment to each point. d Numeric vector of distances from each point of
Xto the corresponding projected point.
tp Numeric vector giving the scaled parametric coordinate $0 \le t_p \le 1$ of the position of the projected point along the segment.
- For example suppose
mapXY = 5and
tp = 0.33. Then
Yis the line segment lying closest to
X. The projection of the point
Xonto the segment
Yis the point
Xproj, which lies one-third of the way between the first and second endpoints of the line segment
nearestsegment for a faster way to determine
which segment is closest to each point.
X <- rstrat(square(1), 5) Y <- as.psp(matrix(runif(20), 5, 4), window=owin()) plot(Y, lwd=3, col="green") plot(X, add=TRUE, col="red", pch=16) v <- project2segment(X,Y) Xproj <- v$Xproj plot(Xproj, add=TRUE, pch=16) arrows(X$x, X$y, Xproj$x, Xproj$y, angle=10, length=0.15, col="red")