Skip to contents

grid.pattern_polygon_tiling() draws a specified polygon tiling pattern onto the graphic device. names_polygon_tiling lists all supported types.

Usage

grid.pattern_polygon_tiling(
  x = c(0, 0, 1, 1),
  y = c(1, 0, 0, 1),
  id = 1L,
  ...,
  colour = gp$col %||% "grey20",
  fill = gp$fill %||% "grey80",
  angle = 30,
  spacing = 0.05,
  xoffset = 0,
  yoffset = 0,
  units = "snpc",
  type = "square",
  alpha = gp$alpha %||% NA_real_,
  linetype = gp$lty %||% 1,
  linewidth = size %||% gp$lwd %||% 1,
  size = NULL,
  default.units = "npc",
  name = NULL,
  gp = gpar(),
  draw = TRUE,
  vp = NULL
)

names_polygon_tiling

Format

An object of class character of length 36.

Arguments

x

A numeric vector or unit object specifying x-locations of the pattern boundary.

y

A numeric vector or unit object specifying y-locations of the pattern boundary.

id

A numeric vector used to separate locations in x, y into multiple boundaries. All locations within the same id belong to the same boundary.

...

Currently ignored.

colour

Stroke colour(s).

fill

Fill colour(s) or grid::pattern() / gradient object(s).

angle

Rotation angle in degrees.

spacing

Spacing between repetitions of pattern (in units units).

xoffset

Shift pattern along x axis (in units units).

yoffset

Shift pattern along y axis (in units units).

units

grid::unit() units for spacing, xoffset, and yoffset parameters.

type

Name of polygon tiling to draw. See Details.

alpha

Alpha (between 0 and 1) or NA (default, preserves colors' alpha value). Not supported for all polygon tiling type.

linetype

Stroke linetype.

linewidth

Stroke linewidth.

size

For backwards compatibility can be used to set linewidth.

default.units

A string indicating the default units to use if x or y are only given as numeric vectors.

name

A character identifier.

gp

An object of class "gpar", typically the output from a call to the function gpar. This is basically a list of graphical parameter settings.

draw

A logical value indicating whether graphics output should be produced.

vp

A Grid viewport object (or NULL).

Value

A grid grob object invisibly. If draw is TRUE then also draws to the graphic device as a side effect.

Details

grid.pattern_polygon_tiling() supports 1, 2, or 3 fill colors with the first colors (weakly) covering a larger area. Size of the pattern is controlled by spacing. We support the following polygon tiling types:

elongated_triangular

Creates an elongated triangular tiling made of squares and triangles.

herringbone

Creates a herringbone tiling made of rectangles.

hexagonal

Creates a hexagonal tiling made of hexagons.

pythagorean

Creates a Pythagorean tiling made of squares of two different sizes.

rhombille

Creates a rhombille tiling made of rhombi.

rhombitrihexagonal

Creates a rhombitrihexagonal tiling made out of dodecagons, hexagons, and squares.

snub_square

Creates a snub square tiling made of squares and triangles.

snub_trihexagonal

Creates a snub trihexagonal tiling made of hexagons and triangles.

square

Creates a square tiling made of squares.

tetrakis_square

Creates a tetrakis square tiling made of isosceles right triangles.

triangular

Creates a triangular tiling made of equilateral triangles.

trihexagonal

Creates a trihexagonal tiling made of hexagons and triangles.

truncated_square

Creates a truncated square tiling made of octagons and squares.

truncated_hexagonal

Creates a truncated hexagonal tiling made of dodecagons and triangles.

truncated_trihexagonal

Creates a truncated trihexagonal tiling made of hexagons, squares, and triangles.

2*.2**.2*.2**

Creates a polygon tiling made of rhombi.

2**.3**.12*

Creates a polygon tiling made of rhombi, triangles, and twelve-pointed stars.

3.3.3.3**

Creates a polygon tiling made of triangles.

3.3*.3.3**

Creates a regular (star) polygon tiling made of triangles and three-pointed stars.

3.3.3.12*.3.3.12*

Creates a regular (star) polygon tiling made of triangles and twelve-pointed stars.

3.3.8*.3.4.3.8*

Creates a regular (star) polygon tiling made of triangles, squares, and eight-pointed stars.

3.3.8*.4**.8*

Creates a regular (star) polygon tiling made of triangles, four-pointed stars, and eight-pointed stars.

3.4.6.3.12*

Creates a regular (star) polygon tiling made of triangles, squares, hexagons, and twelve-pointed stars.

3.4.8.3.8*

Creates a regular (star) polygon tiling made of triangles, squares, octagons, and eight-pointed stars.

3.6*.6**

Creates a regular (star) polygon tiling made of triangles and six-pointed stars.

4.2*.4.2**

Creates a polygon tiling made of squares and rhombi.

4.4*.4**

Creates a regular (star) polygon tiling made of squares and four-pointed stars.

4.6.4*.6

Creates a regular (star) polygon tiling made of squares, hexagons, and four-pointed stars.

4.6*.4.6*.4.6*

Creates a regular (star) polygon tiling made of squares and six-pointed stars.

4.8*.4**.8*

Creates a polygon tiling of squares and eight-pointed stars.

6.6*.6.6*

Creates a regular (star) polygon tiling made of hexagons and six-pointed stars.

8.4*.8.4*

Creates a regular (star) polygon tiling made of octagons and four-pointed stars.

9.3.9.3*

Creates a regular (star) polygon tiling made of triangles, nonagons, and three-pointed stars.

12.3*.12.3*

Creates a regular (star) polygon tiling made of dodecagons and three-pointed stars.

12.12.4*

Creates a regular (star) polygon tiling made of dodecagons and four-pointed stars.

18.18.3*

Creates a regular (star) polygon tiling made of eighteen-sided polygons and three-pointed stars.

See also

The tiling vignette vignette("tiling", package = "gridpattern") for more information about these tilings as well as more examples of polygon tiling using the grid.pattern_regular_polygon() function.

Examples

print(names_polygon_tiling)
#>  [1] "elongated_triangular"   "herringbone"            "hexagonal"             
#>  [4] "pythagorean"            "rhombitrihexagonal"     "rhombille"             
#>  [7] "snub_square"            "snub_trihexagonal"      "square"                
#> [10] "tetrakis_square"        "triangular"             "trihexagonal"          
#> [13] "truncated_square"       "truncated_hexagonal"    "truncated_trihexagonal"
#> [16] "2*.2**.2*.2**"          "2**.3**.12*"            "3.3.3.3**"             
#> [19] "3.3*.3.3**"             "3.3.3.12*.3.3.12*"      "3.3.8*.3.4.3.8*"       
#> [22] "3.3.8*.4**.8*"          "3.4.6.3.12*"            "3.4.8.3.8*"            
#> [25] "3.6*.6**"               "4.2*.4.2**"             "4.4*.4**"              
#> [28] "4.6.4*.6"               "4.6*.4.6*.4.6*"         "4.8*.4**.8*"           
#> [31] "6.6*.6.6*"              "8.4*.8.4*"              "9.3.9.3*"              
#> [34] "12.3*.12.3*"            "12.12.4*"               "18.18.3*"              

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))
gp1 <- grid::gpar(fill = "yellow", col = "black")
gp2 <- grid::gpar(fill = c("yellow", "red"), col = "black")
gp3 <- grid::gpar(fill = c("yellow", "red", "blue"), col = "black")

grid.pattern_polygon_tiling(x_hex, y_hex, type = "herringbone", gp = gp1)


grid::grid.newpage()
grid.pattern_polygon_tiling(x_hex, y_hex, type = "hexagonal",
                            spacing = 0.2, gp = gp3)


grid::grid.newpage()
grid.pattern_polygon_tiling(x_hex, y_hex, type = "pythagorean",
                            spacing = 0.2, gp = gp2)


grid::grid.newpage()
grid.pattern_polygon_tiling(x_hex, y_hex, type = "snub_trihexagonal",
                            spacing = 0.2, gp = gp3)


grid::grid.newpage()
grid.pattern_polygon_tiling(x_hex, y_hex, type = "rhombille",
                              spacing = 0.2, gp = gp3)