logo
1
2
3
4
5
6
7
8
9
10
11
12
13
use crate::{Circle, Point};
use rand::{thread_rng, Rng};

impl<T> Circle<T>
where
    T: Clone,
{
    pub fn random_point(&self, mut rng: impl Rng) -> Point<T> {
        let x = rng.gen_range(self.x - self.radius.clone(), self.x + self.radius.clone());
        let y = rng.gen_range(self.y - self.radius.clone(), self.y + self.radius.clone());
        Point::new(x, y)
    }
}