Polygonal Approximation of a Disc/Circle
discpoly.Rd
Generates a polygon representing a disc/circle (in planar
coordinates) as an object of one of three possible
classes: "Polygon"
,
"owin"
, or -- if
gpclib is available --
"gpc.poly"
.
Usage
discpoly(center, radius, npoly = 64,
class = c("Polygon", "owin", "gpc.poly"),
hole = FALSE)
Arguments
- center
numeric vector of length 2 (center coordinates of the circle).
- radius
single numeric value (radius of the circle).
- npoly
single integer. Number of edges of the polygonal approximation.
- class
class of the resulting polygon (partial name matching applies). For
"owin"
, this is just a wrapper around spatstat.geom's owndisc
function.- hole
logical. Does the resulting polygon represent a hole?
Value
A polygon of class class
representing a
circle/disc with npoly
edges accuracy.
If class="gpc.poly"
and this S4 class is neither registered
nor available via loading gpclib, only the
pts
slot of a "gpc.poly"
is returned with a warning.
Author
Sebastian Meyer
This function is inspired by the disc
function
from package spatstat.geom.
See also
disc in package spatstat.geom.
Examples
## Construct circles with increasing accuracy and of different spatial classes
disc1 <- discpoly(c(0,0), 5, npoly=4, class = "owin")
disc2 <- discpoly(c(0,0), 5, npoly=16, class = "Polygon")
## Look at the results
print(disc1)
plot(disc1, axes=TRUE, main="", border=2)
print(disc2)
lines(disc2, col=3)
if (surveillance.options("gpclib") && requireNamespace("gpclib")) {
disc3 <- discpoly(c(0,0), 5, npoly=64, class = "gpc.poly")
print(disc3)
plot(disc3, add=TRUE, poly.args=list(border=4))
}
## to only _draw_ a circle
symbols(0, 0, circles=5, inches=FALSE, add=TRUE, fg=5)