
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).
discpoly(center, radius, npoly = 64,
class = c("Polygon", "owin", "gpc.poly"),
hole = FALSE)
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.
numeric vector of length 2 (center coordinates of the circle).
single numeric value (radius of the circle).
single integer. Number of edges of the polygonal approximation.
class of the resulting polygon (partial name
matching applies). For "owin"
, this is just a
wrapper around spatstat.geom's own disc
function.
logical. Does the resulting polygon represent a hole?
disc
in package spatstat.geom.
## 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)
Run the code above in your browser using DataLab