The svg_polygon() function adds a polygon to an svg object. In the context of an SVG shape a polygon is similar to a polyline (defined by a series of points) except that the path will be automatically closed (i.e., last point connects to the first point). Like a polyline, a polygon is drawn by connecting a series of points with straight lines. The points can be provided as a vector that's exactly divisible by two, or, as a formatted string that adheres to the specification of the points attribute of the SVG <polygon> tag. All point positions are in units of px.

svg_polygon(
  svg,
  points,
  stroke = NULL,
  stroke_width = NULL,
  fill = NULL,
  opacity = NULL,
  attrs = list(),
  anims = list(),
  filters = list(),
  id = NULL
)

Arguments

svg

The svg object that is created using the SVG() function.

points

A numeric vector of points (with alternating values for x and y positions) that define the polygon. This can also be a single-length character vector that holds the formatted points string (space-separated x and y values, and comma-separated points).

stroke

The color of the stroke applied to the element (i.e., the outline).

stroke_width

The width of the stroke in units of pixels.

fill

The fill color of the element.

opacity

The opacity of the element. Must be a value in the range of 0 to 1.

attrs

A presentation attribute list. The helper function svg_attrs_pres() can help us easily generate this named list object. For the most part, the list's names are the presentation attribute names and the corresponding values are the matching attribute values.

anims

An animation directive list for the element. This should be structured using the anims() function.

filters

A filter directive list for the element. This is easily created by using a list of filter_*() functions (e.g., list(filter_gaussian_blur(2), filter_drop_shadow(2, 2))).

id

An optional ID value to give to the built tag. This is useful for modifying this element in a later function call or for interacting with CSS.

Examples

# Create an SVG with a single # polygon element svg <- SVG(width = 300, height = 300) %>% svg_polygon( points = "100,10 40,198 190,78 10,78 160,198", stroke = "orange", stroke_width = 4, fill = "yellow" )