# ngonGrob: Regular polygon grob In gridExtra: Miscellaneous Functions for "Grid" Graphics

## Description

Regular polygons with optional rotation, stretching, and aesthetic attributes.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```ngonGrob(x, y, n = 5, size = 5, phase = pi/2, angle = 0, ar = 1, gp = gpar(colour = "black", fill = NA, linejoin = "mitre"), ..., position.units = "npc", size.units = "mm") grid.ngon(...) ellipseGrob(x, y, size = 5, angle = pi/4, ar = 1, n = 50, gp = gpar(colour = "black", fill = NA, linejoin = "mitre"), ..., position.units = "npc", size.units = "mm") grid.ellipse(...) polygon_regular(n = 5, phase = 0) ```

## Arguments

 `x` x unit `y` y unit `n` number of vertices `size` radius of circumscribing circle `phase` angle in radians of first point relative to x axis `angle` angle of polygon in radians `ar` aspect ratio `gp` gpar `...` further parameters passed to polygonGrob `position.units` default units for the positions `size.units` grid units for the sizes

A grob.

## Functions

• `ngonGrob`: return a polygon grob

• `grid.ngon`: draw a polygon grob on the current device

• `ellipseGrob`: return an ellipse grob

• `grid.ellipse`: draw an ellipse grob

• `polygon_regular`: return the x,y coordinates of a regular polygon inscribed in the unit circle

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30``` ```library(grid) N <- 5 xy <- polygon_regular(N)*2 # draw multiple polygons g <- ngonGrob(unit(xy[,1],"cm") + unit(0.5,"npc"), unit(xy[,2],"cm") + unit(0.5,"npc"), n = seq_len(N) + 2, gp = gpar(fill=1:N)) grid.newpage() grid.draw(g) # rotated and stretched g2 <- ngonGrob(unit(xy[,1],"cm") + unit(0.5,"npc"), unit(xy[,2],"cm") + unit(0.5,"npc"), n = seq_len(N) + 2, ar = seq_len(N), phase = 0, angle = pi/(seq_len(N) + 2), size = 1:N + 5) grid.newpage() grid.draw(g2) # ellipse g3 <- ellipseGrob(unit(xy[,1],"cm") + unit(0.5,"npc"), unit(xy[,2],"cm") + unit(0.5,"npc"), angle = -2*seq(0,N-1)*pi/5 + pi/2, size = 5, ar = 1/3) grid.newpage() grid.draw(g3) ```

### Example output

```
```

gridExtra documentation built on Sept. 9, 2017, 5:07 p.m.