R/patterngeometryregular_polygon.R
grid.pattern_regular_polygon.Rd
grid.pattern_regular_polygon()
draws a regular polygon pattern onto the graphic device.
grid.pattern_regular_polygon( x = c(0, 0, 1, 1), y = c(1, 0, 0, 1), id = 1L, ..., colour = gp$col %% "grey20", fill = gp$fill %% "grey80", angle = 30, density = 0.2, spacing = 0.05, xoffset = 0, yoffset = 0, scale = 0.5, shape = "convex4", grid = "square", type = NULL, subtype = NULL, rot = 0, alpha = gp$alpha %% NA_real_, linetype = gp$lty %% 1, size = gp$lwd %% 1, default.units = "npc", name = NULL, gp = gpar(), draw = TRUE, vp = NULL )
x  A numeric vector or unit object specifying xlocations of the pattern boundary. 

y  A numeric vector or unit object specifying ylocations of the pattern boundary. 
id  A numeric vector used to separate locations in x, y into multiple boundaries.
All locations within the same 
...  Currently ignored 
colour  Stroke colour 
fill  Fill colour 
angle  Rotation angle in degrees 
density  Approx. fraction of area the pattern fills. 
spacing  Spacing between repetitions of pattern ('snpc' units between 0 and 1). 
xoffset  Shift pattern along x axis ('snpc' units between 0 and 1). 
yoffset  Shift pattern along y axis ('snpc' units between 0 and 1). 
scale  For star polygons, multiplier (between 0 and 1) applied to exterior radius to get interior radius. 
shape  Either "convex" or "star" followed by the number of exterior vertices or alternatively "circle", "square", "null", "rhombille_rhombus", "tetrakis_left", or "tetrakis_right". For example "convex5" corresponds to a pentagon and "star6" corresponds to a sixpointed star. The "square" shape is larger than the "convex4" shape and is rotated an extra 45 degrees, it can be used to generate a multicolored “checkers” effect when density is 1. The "null" shape is not drawn, it can be used to create holes within multipleelement patterns. The "rhombille_rhombus" shape draws a rhombus while the "tetrakis_left" or "tetrakis_right" shapes draw an isosceles right triangle. These latter three nonregularpolygon shapes are intended to help generate rhombille and tetrakis square tilings. 
grid  Adjusts placement and density of certain graphical elements.

type  Adjusts the repeating of certain aesthetics such as color.
Can use any type in 
subtype  See for 
rot  Angle to rotate regular polygon (degrees, counterclockwise). 
alpha  Alpha (between 0 and 1) or 
linetype  Stroke linetype 
size  Stroke linewidth 
default.units  A string indicating the default units to use if 
name  A character identifier. 
gp  An object of class 
draw  A logical value indicating whether graphics output should be produced. 
vp  A Grid viewport object (or NULL). 
A grid grob object invisibly. If draw
is TRUE
then also draws to the graphic device as a side effect.
grid.pattern_circle()
for a special case of this pattern.
The tiling vignette features more examples of regular polygon tiling using
this function vignette("tiling", package = "gridpattern")
.
if (require("grid")) { x_hex < 0.5 + 0.5 * cos(seq(2 * pi / 4, by = 2 * pi / 6, length.out = 6)) y_hex < 0.5 + 0.5 * sin(seq(2 * pi / 4, by = 2 * pi / 6, length.out = 6)) # 'density', 'rot', and 'shape' are vectorized grid.newpage() grid.pattern_regular_polygon(x_hex, y_hex, colour = "black", fill = c("blue", "yellow", "red"), shape = c("convex4", "star8", "circle"), density = c(0.45, 0.42, 0.4), spacing = 0.08, angle = 0) # checker pattern using "square" shape grid.newpage() grid.pattern_regular_polygon(x_hex, y_hex, shape = "square", colour = "transparent", fill = c("black", "red", "blue", "yellow"), angle = 0, density = 1.0, spacing = 0.2) # checker pattern using the default "convex4" shape grid.newpage() grid.pattern_regular_polygon(x_hex, y_hex, density = 1.0, colour = "black", fill = "blue") # using a "twill_zigzag" 'weave' pattern grid.newpage() grid.pattern_regular_polygon(x_hex, y_hex, fill = c("blue", "yellow"), shape = c("circle", "star8"), density = c(0.5, 0.6), type = "twill_zigzag") # hexagon tiling grid.newpage() grid.pattern_regular_polygon(x_hex, y_hex, color = "transparent", fill = c("white", "grey", "black"), density = 1.0, spacing = 0.1, shape = "convex6", grid = "hex") # triangle tiling grid.newpage() grid.pattern_regular_polygon(x_hex, y_hex, fill = "green", density = 1.0, spacing = 0.1, shape = "convex3", grid = "hex") }