# project2segment

From spatstat v1.28-1
by Adrian Baddeley

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

##### Usage

`project2segment(X, Y)`

##### Arguments

- X
- A point pattern (object of class
`"ppp"`

). - Y
- A line segment pattern (object of class
`"psp"`

).

##### Details

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 `z`

along `y`

which is closest to `x`

. This position `z`

is returned,
along with supplementary information.

##### Value

- 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`X`

. 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 `X`

to 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[2] = 5`

and`tp[2] = 0.33`

. Then`Y[5]`

is the line segment lying closest to`X[2]`

. The projection of the point`X[2]`

onto the segment`Y[5]`

is the point`Xproj[2]`

, which lies one-third of the way between the first and second endpoints of the line segment`Y[5]`

.

##### See Also

`nearestsegment`

for a faster way to determine
which segment is closest to each point.

##### Examples

```
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")
```

*Documentation reproduced from package spatstat, version 1.28-1, License: GPL (>= 2)*

### Community examples

Looks like there are no examples yet.