Type: Package
Title: A Small Package for Drawing Various Combinations of Circles
Version: 0.1.0
Description: Contains the adaptation of bubblebath from 'MATLAB', developed by Adam Danz and available through the 'MATLAB' Central File Exchange, and the tools to transform a dataframe of radii and points to plot-able paths.
Maintainer: Ryan ODea <ryanodea@hsph.harvard.edu>
URL: https://github.com/ryan-odea/circles
BugReports: https://github.com/ryan-odea/circles/issues
License: MIT + file LICENSE
Encoding: UTF-8
RoxygenNote: 7.3.2
Imports: data.table
NeedsCompilation: no
Packaged: 2025-04-29 15:09:36 UTC; odear
Author: Ryan ODea [aut, cre]
Repository: CRAN
Date/Publication: 2025-05-02 09:20:11 UTC

Generate Bubble Bath (Chart) Dataframe

Description

Creates a dataset of circles ("bubbles") with random centers and specified radii. When overlap is FALSE, circles are placed so they do not overlap.

Usage

bubblebath(
  frameSize = c(50, 50),
  circSize = seq(0.2, 5, length.out = 25),
  maxCircsPerRad = 10000,
  max_iter = 10000,
  density = 0.7,
  overlap = FALSE,
  suppressWarning = FALSE
)

Arguments

frameSize

A numeric vector of length 2 defining the frame's width and height (centered at 0).

circSize

A numeric vector specifying the radii of circles to place. If length is 2, it's interpreted as min and max for a sequence. If length > 2, the exact values are used as radii.

maxCircsPerRad

Maximum number of circles per radius.

max_iter

Maximum attempts to place each circle.

density

Density of circles, between 0 and 1.

overlap

Logical; if FALSE, circles won't overlap.

suppressWarning

Logical; if TRUE internal warnings are suppressed.

Value

A data frame with columns x, y, and r (circle centers and radii).

Examples

# Create bubble bath points
circles <- bubblebath(circSize = c(0.5, 1, 2, 3), overlap = FALSE)

Generate Points for Drawing Circles

Description

Creates points along the perimeter of a circle for plotting as a path.

Usage

draw_circles(data, x_col = "x", y_col = "y", r_col = "r", n_points = 500)

Arguments

data

A data frame containing circle data (centers and radii).

x_col

Name of the column containing x-coordinates of circle centers.

y_col

Name of the column containing y-coordinates of circle centers.

r_col

Name of the column containing circle radii.

n_points

Number of points to generate around each circle perimeter.

Value

A dataframe with x, y coordinates for plotting and group identifier per circle plotted.