# distfun

##### Distance Map as a Function

Compute the distance function of an object, and return it as a function.

##### Usage

`distfun(X, ...)` ## S3 method for class 'ppp':
distfun(X, ..., k=1)

## S3 method for class 'psp':
distfun(X, ...)

## S3 method for class 'owin':
distfun(X, ..., invert=FALSE)

##### Arguments

- X
- Any suitable dataset representing a two-dimensional
object, such as a point pattern (object of class
`"ppp"`

), a window (object of class`"owin"`

) or a line segment pattern (object of class`"psp"`

). - ...
- Extra arguments are ignored.
- k
- An integer. The distance to the
`k`

th nearest point will be computed. - invert
- If
`TRUE`

, compute the distance transform of the complement of`X`

.

##### Details

The `f(x,y)`

is the shortest distance from $(x,y)$ to $A$.

The command `f <- distfun(X)`

returns a *function*
in the Rlanguage, with arguments `x,y`

, that represents the
distance function of `X`

. Evaluating the function `f`

in the form `v <- f(x,y)`

, where `x`

and `y`

are any numeric vectors of equal length containing coordinates of
spatial locations, yields the values of the distance function at these
locations.

This should be contrasted with the related command `distmap`

which computes the distance function of `X`

on a grid of locations, and returns the distance
values in the form of a pixel image.

The result of `f <- distfun(X)`

also belongs to the class
`"funxy"`

and to the special class `"distfun"`

.
It can be printed and plotted immediately as shown in the Examples.
A `distfun`

object can be converted to a pixel image
using `as.im`

.

##### Value

- A
`function`

with arguments`x,y`

. The function also belongs to the class`"distfun"`

which has a method for`print`

. It also belongs to the class`"funxy"`

which has methods for`plot`

,`contour`

and`persp`

.

##### See Also

##### Examples

```
data(letterR)
f <- distfun(letterR)
f
plot(f)
f(0.2, 0.3)
plot(distfun(letterR, invert=TRUE), eps=0.1)
d <- distfun(cells)
d2 <- distfun(cells, k=2)
d(0.5, 0.5)
d2(0.5, 0.5)
```

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