Struct rand_distr::UnitSphere
source · pub struct UnitSphere;
Expand description
Samples uniformly from the surface of the unit sphere in three dimensions.
Implemented via a method by Marsaglia1.
Example
use rand_distr::{UnitSphere, Distribution};
let v: [f64; 3] = UnitSphere.sample(&mut rand::thread_rng());
println!("{:?} is from the unit sphere surface.", v)
Marsaglia, George (1972). Choosing a Point from the Surface of a Sphere. Ann. Math. Statist. 43, no. 2, 645–646. ↩
Trait Implementations§
source§impl Clone for UnitSphere
impl Clone for UnitSphere
source§fn clone(&self) -> UnitSphere
fn clone(&self) -> UnitSphere
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for UnitSphere
impl Debug for UnitSphere
source§impl<F: Float + SampleUniform> Distribution<[F; 3]> for UnitSphere
impl<F: Float + SampleUniform> Distribution<[F; 3]> for UnitSphere
source§fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> [F; 3]
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> [F; 3]
Generate a random value of
T
, using rng
as the source of randomness.