area2d | R Documentation |
Compute the area of a 2d projection on the (xy) plane.
area2d(mesh, method = "concave")
mesh |
object of class mesh3d |
method |
the method used to compute the hull of the 2d projection, either
'convex' (see |
This function can assess 2D surface area of the projection of a mesh on the (xy) plane.
The projection is assimilated to a hull, which can be a convex hull
(see chull
) or a concave hull
(see concaveman
). Note that if your mesh is a combination
of two or more discontinuous surfaces (e.g., isolated cusps), you should not use
either approach.
As of version 1.42.2, the concave hull fails intermittently on Mac systems, so the function
defaults to convex hulls (on other systems, it defaults to concave hulls)
A single 2D surface area value, corresponding to the footprint of the mesh.
rfi
#The following objects should have the exact same footprints: area2d(dkmodel$basin) area2d(dkmodel$complex) area2d(dkmodel$cusp) area2d(dkmodel$flat) #Graphical rendering of convex hull x <- dkmodel$cusp FootprintVerts <- t(x$vb[1:2, ]) Hull <- grDevices::chull(x = FootprintVerts[, 1], y = FootprintVerts[, 2]) plot(x$vb[1, ], x$vb[2, ], xlab = "x", ylab = "y") points(x$vb[1, Hull], x$vb[2, Hull], col = "orange1") #Graphical rendering of concave hull x <- dkmodel$cusp FootprintVerts <- t(x$vb[1:2, ]) FootprintVerts[, 1] <- FootprintVerts[, 1] - min(FootprintVerts[, 1]) FootprintVerts[, 2] <- FootprintVerts[, 2] - min(FootprintVerts[, 2]) Hull <- concaveman::concaveman(points = FootprintVerts) plot(x$vb[1, ] - min(x$vb[1, ]), x$vb[2, ] - min(x$vb[2, ]), xlab = "x", ylab = "y") points(Hull, col = "green1")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.