gs_polygon: Create a polygon 'geom'

Description Usage Arguments Details Value Functions See Also Examples

View source: R/gs_polygon.R

Description

Create any (regular) polygon geometry (of class geom) either by specifying anchor values or by sketching it.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
gs_polygon(
  anchor = NULL,
  window = NULL,
  features = 1,
  vertices = 3,
  regular = FALSE,
  ...
)

gs_triangle(anchor = NULL, window = NULL, features = 1, ...)

gs_square(anchor = NULL, window = NULL, features = 1, ...)

gs_rectangle(anchor = NULL, window = NULL, features = 1, ...)

gs_hexagon(anchor = NULL, window = NULL, features = 1, ...)

Arguments

anchor

[geom(1)|data.frame(1)]
Object to derive the geom from. It must include column names x, y and optionally a custom fid.

window

[data.frame(1)]
in case the reference window deviates from the bounding box of anchor (minimum and maximum values), specify this here.

features

[integerish(1)]
number of polygons to create.

vertices

[integerish(.)]
number of vertices per polygon; will be recycled if it does not have as many elements as specified in features.

regular

[logical(1)]
should the polygon be regular, i.e. point symmetric (TRUE) or should the vertices be selected as provided by anchor (FALSE, default)?

...

[various]
graphical parameters to gt_locate, in case points are sketched; see gpar

Details

The argument anchor indicates how the geom is created:

The argument regular determines how the vertices provided in anchor or via template are transformed into a polygon:

Value

A geom.

Functions

See Also

Other geometry shapes: gs_line(), gs_point(), gs_random()

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
# 1. create a polygon programmatically
coords <- data.frame(x = c(0, 40, 40, 0),
                     y = c(0, 0, 40, 40))

# if no window is set, the bounding box will be set as window
aGeom <- gs_polygon(anchor = coords)
visualise(aGeom)

# derive a regular polygon from the coordinates
aPolygon <- gs_polygon(anchor = coords, vertices = 6, regular = TRUE)
visualise(aPolygon, linecol = "green")
visualise(aGeom, new = FALSE)

# the vertices are plottet relative to the window
window <- data.frame(x = c(-50, 50),
                     y = c(-50, 50))
aPolygon <- setWindow(x = aPolygon, to = window)
visualise(aPolygon, fillcol = "deeppink")

# using a geom as anchor retains its properties (such as the window)
aRectangle <- gs_rectangle(anchor = aPolygon)
visualise(aRectangle, new = FALSE)

# 2. sketch a hexagon
if(dev.interactive()){
  aHexagon <- gs_hexagon(features = 1)
  visualise(aHexagon, linecol = "deeppink", linetype = 2, new = FALSE)
}

geometr documentation built on Sept. 21, 2021, 1:07 a.m.