ashape {alphahull} R Documentation

## alpha-shape calculation

### Description

This function calculates the α-shape of a given sample for α>0.

### Usage

```ashape(x, y = NULL, alpha)
```

### Arguments

 `x, y` The `x` and `y` coordinates of a set of points. Alternatively, a single argument `x` can be provided, see Details. `alpha` Value of α.

### Details

An attempt is made to interpret the arguments x and y in a way suitable for computing the α-shape, see `xy.coords`.

The α-shape is defined for any finite number of points. However, since the algorithm is based on the Delaunay triangulation, at least three non-collinear points are required.

If `y` is NULL and `x` is an object of class `"delvor"`, then the α-shape is computed without invoking again the function `delvor` (it reduces the computational cost).

The function `ashape` returns (among other values) the matrix `edges`. The structure of `edges` is that of matrix `mesh` returned by the function `delvor`. Note that the α-shape is a subgraph of the Delaunay triangulation and, therefore, `edges` is a submatrix of `mesh`.

### Value

A list with the following components:

 `edges` A n.seg-row matrix with the coordinates and indexes of the edges of the Delaunay triangulation that form the α-shape. The number of rows n.seg coincides with the number of segments of the α-shape. The matrix also includes information of the Voronoi extremes corresponding to each segment. `length` Length of the α-shape. `alpha` Value of α. `alpha.extremes` Vector with the indexes of the sample points that are α-extremes. See Edelsbrunnner et al. (1983). `delvor.obj` Object of class `"delvor"` returned by the `delvor` function. `x` A 2-column matrix with the coordinates of the set of points.

### References

Edelsbrunner, H., Kirkpatrick, D.G. and Seidel, R. (1983). On the shape of a set of points in the plane. IEEE Transactions on Information Theory, 29(4), pp.551-559.

`plot.ashape`, `delvor`.

### Examples

```## Not run:
# Uniform sample of size n=300 in the annulus B(c,0.5)\B(c,0.25),
# with c=(0.5,0.5).
n <- 300
theta<-runif(n,0,2*pi)
r<-sqrt(runif(n,0.25^2,0.5^2))
x<-cbind(0.5+r*cos(theta),0.5+r*sin(theta))
# Value of alpha
alpha <- 0.1
# alpha-shape
ashape.obj <- ashape(x, alpha = alpha)
# If we change the value of alpha there is no need to compute
# again the Delaunay triangulation and Voronoi Diagram
alpha <- 0.4
ashape.obj.new <- ashape(ashape.obj\$delvor.obj, alpha = alpha)

# Random sample  from a uniform distribution on a Koch snowflake
# with initial side length 1 and 3 iterations
x <- rkoch(2000, side = 1, niter = 3)
# Value of alpha
alpha <- 0.05
# alpha-shape
ashape.obj <- ashape(x, alpha = alpha)

## End(Not run)
```

[Package alphahull version 2.2 Index]