This is a custom function to draw lots of polygons within C with a single call from R. Use this function when you want to draw lots of polygon and need to speed up the creation of the final image.

cairo_polygon_vec(cr, x, y, idx, r, g, b, a, sr, sg, sb, sa)

Arguments

cr

cairo_t *

x

double

y

double

idx

integer runs of the same value define the locations in the x and y vectors which refer to the same polygon.

r, g, b, a

fill colour values in range [0,1]. Set a = 0 to disable filling.

sr, sg, sb, sa

stroke colour values in range [0,1]. Set sa = 0 to disable drawing the stroke

Details

The x and y arguments must be the same length.

The colour arguments (r, g, b, a, etc) must all be the same length as the number of distinct runs of values in idx, or length of 1

See also

Examples

if (FALSE) { # define 2 polygons df <- tibble::tribble( ~x, ~y, ~idx, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 10, 0, 55, 11, 0, 55, 11, 1, 55, 10, 1, 55 ) # Draw 2 polygons with red fill and blue border cairo_polygon_vec(cr, df$x, df$y, df$idx, 1, 0, 0, 1, 0, 0, 1, 1) }