| ashape | R Documentation |
This function calculates the α-shape of a given sample for α>0.
ashape(x, y = NULL, alpha)
x, y |
The |
alpha |
Value of α. |
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.
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 |
x |
A 2-column matrix with the coordinates of the set of points. |
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.
## 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.