Calculate the centroid of a polygon.

Usage

getCentroid(data)

Arguments

data
A matrix or a dataframe with two columns, for x and y coordinates

Description

This function takes a list of dataframes or a matrices containing x and y values, which define zones (polygons), and calculates their centroids.

Details

Most of the coordinates for the intersection labels in this package were calculated using the formula for a centroid of a non-self-intersecting closed polygon, approximated by 10 vertices.

Value

A list with x and y coordinates, for each zone in the input list.

References

Centroid. (n.d.). In Wikipedia. Retrieved January 06, 2016, from https://en.wikipedia.org/wiki/Centroid

Examples

venn("0110")
# centroid for the intersection "0110" in a 4 set diagram # "0110" is 0*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 6 centroid <- getCentroid(getZones(6, 4))[[1]] text(centroid[1], centroid[2], labels = "0110", cex = 0.85)

# centroids for the two zones in the "E not A" zones venn("0---1")
zones <- getZones(seq(1, 15, by = 2), 5) polygon(zones[[1]], col="lightblue")
polygon(zones[[2]], col="lightblue")
text(do.call("rbind", getCentroid(zones)), labels = c("zone 1", "zone 2"), cex = 0.85)