# 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 own`disc`

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)
```