ngonGrob

0th

Percentile

Regular polygon grob

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

Usage
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
Value

  • 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

Aliases
  • ellipseGrob
  • grid.ellipse
  • grid.ngon
  • ngonGrob
  • polygon_regular
Examples
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)
Documentation reproduced from package gridExtra, version 2.2.0, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.