Create a line geometry (of class geom) either by specifying anchor values or by sketching it.

gs_line(anchor = NULL, window = NULL, features = 1, vertices = 2, ...)

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 lines to create.

vertices

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

...

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

Value

A geom.

Details

The argument anchor indicates how the geom is created:

  • if anchor is set, the geom is created parametrically from the points given in anchor,

  • if it is not set either window or a default window between 0 and 1 is opened to sketch the geom.

See also

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

Examples

# 1. create a line programmatically
coords <- data.frame(x = c(40, 70, 70, 50),
                     y = c(40, 40, 60, 70))

# if no window is set, the bounding box will be set as window
(aGeom <- gs_line(anchor = coords))
#> geom        line
#>             1 group | 1 feature | 4 points
#> crs         cartesian
#> attributes  --
#> tiny map       70 
#>                ◌ ◎ ◌ ◌    
#>                ◌ ◌ ◌ ◎    
#>                ◌ ◌ ◌ ◌    
#>             40 ◎ ◌ ◌ ◎ 70 
#>                40 

# the vertices are plottet relative to the window
window <- data.frame(x = c(0, 80),
                     y = c(0, 80))
aLine <- gs_line(anchor = coords, window = window)
visualise(aLine, linecol = "green")


# when a geom is used in 'anchor', its properties are passed on
aGeom <- setWindow(x = aGeom, to = window)
aLine <- gs_line(anchor = aGeom)
visualise(aLine, linecol = "deeppink")


# 2. sketch a line
if(dev.interactive()){
  aLine <- gs_line(vertices = 4)
  visualise(aLine, linecol = "orange", linewidth = 5, new = FALSE)
}