Learn R Programming

venn (version 1.0)

getCentroid: Calculate the centroid of a polygon.

Description

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

Usage

getCentroid(data)

Arguments

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

Value

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

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.

References

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

Examples

Run this code
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)

Run the code above in your browser using DataLab