Description Usage Arguments Value Functions Examples
Regular polygons with optional rotation, stretching, and aesthetic attributes.
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)
 | 
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.
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
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)
 | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.