solve_3set: Area-proportional 3-set circle layout (Wilkinson 2012-style...

View source: R/proportional.R

solve_3setR Documentation

Area-proportional 3-set circle layout (Wilkinson 2012-style triangulation)

Description

Computes pairwise inter-center distances via bisection on the lens intersection area, then places circle C via barycentric triangulation against AB. Always sets 'is_approximate = TRUE' because perfect 3-circle area-proportional fits don't always exist mathematically.

Usage

solve_3set(regions)

Arguments

regions

Named list keyed by 'as.character(bitmask)' (1..7) -> exclusive count. Missing keys are treated as 0.

Details

Mirrors Python 'solve_3set' byte-for-byte (including the 'error = NaN' deliberate sentinel - 3-set fit error is not measured in v0.1).

Value

A named list with elements 'circles' (length 3), 'error' (always NaN in v0.1), 'is_approximate' (always TRUE).

Examples

solve_3set(list("1" = 100L, "2" = 80L, "3" = 30L,
                 "4" = 60L,  "5" = 20L, "6" = 15L, "7" = 5L))

vennDiagramLab documentation built on May 19, 2026, 1:07 a.m.