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"
from package sp,
"owin"
from package spatstat.geom, or
"gpc.poly"
from gpclib (if available).
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 not yet registered
in the current R session (by loading gpclib beforehand), only the
pts
slot of a "gpc.poly"
is returned with a warning.
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")
disc3 <- discpoly(c(0,0), 5, npoly=64, class = "gpc.poly") # may warn
## Look at the results
print(disc1)
plot(disc1, axes=TRUE, main="", border=2)
str(disc2)
lines(disc2, col=3)
str(disc3) # a list or a formal "gpc.poly" (if gpclib is available)
if (is(disc3, "gpc.poly")) {
plot(disc3, add=TRUE, poly.args=list(border=4))
} else {
lines(disc3[[1]], col=4)
}
## to only _draw_ a circle
symbols(0, 0, circles=5, inches=FALSE, add=TRUE, fg=5)