These functions generate uniform and stratified samples from configurations of circles of radius 1 in 2- or 3-dimensional space, optionally with noise.
sample_circle(n, bins = 1L, sd = 0) sample_circles_interlocked(n, bins = 1L, sd = 0)
| n | Number of observations. |
|---|---|
| bins | Number of intervals to stratify by. Default set to 1, which generates a uniform sample. |
| sd | Standard deviation of (independent multivariate) Gaussian noise. |
The function sample_circle() uses the usual sinussoidal parameterization
from the unit interval to the unit circle.
The function sample_circles_interlocked() effectively samples from a pair
of circles and rotates them in 3-dimensional space so that they are
interlocked (perpendicular to each other).
Both functions are length-preserving and admit stratification. If bins = 2,
the stratification for the latter function will simply be between the two
interlocked circles.
set.seed(14312L) # circle in 2-space x <- sample_circle(120, sd = .1) plot(x, asp = 1, pch = 19, cex = .5)# interlocked circles in 3-space x <- sample_circles_interlocked(120, sd = .1) pairs(x, asp = 1, pch = 19, cex = .5)