Sample random points within a circle
Level 0 function that samples random points (x, y) within a circle via rejection sampling.
rcircle(n = 1, radius = 1, uniform = TRUE, normScale = 1/3)
n
: integer, number of samples pointsradius
: numeric, radius of the sampled circleuniform
: logical, should sampling be uniform or according to a bi-variate spherical (uncorrelated) Gaussian distribution (see examples)normScale
: numeric, if uniform = FALSE
, a factor to scale radius to standard deviation of the Gaussian density in x and in y (see examples)matrix with two columns for the x and y coordinates of the points.
x <- rcircle(n = 500) lim <- range(x) plot(x, xlim = lim, ylim = lim, main = "Uniform") x <- rcircle(n = 500, uniform = FALSE) lim <- range(x) plot(x, xlim = lim, ylim = lim, main = "Gaussian")
nubDotDev (2021) The BEST Way to Find a Random Point in a Circle https://youtu.be/4y_nmpv-9lI
Wolfram MathWorld (2023) Disk Point Picking https://mathworld.wolfram.com/DiskPointPicking.html