| 261 | dlib::rand rnd; |
| 262 | |
| 263 | void generate_circle ( |
| 264 | std::vector<sample_type>& samples, |
| 265 | double radius, |
| 266 | const long num |
| 267 | ) |
| 268 | { |
| 269 | sample_type m(2,1); |
| 270 | |
| 271 | for (long i = 0; i < num; ++i) |
| 272 | { |
| 273 | double sign = 1; |
| 274 | if (rnd.get_random_double() < 0.5) |
| 275 | sign = -1; |
| 276 | m(0) = 2*radius*rnd.get_random_double()-radius; |
| 277 | m(1) = sign*sqrt(radius*radius - m(0)*m(0)); |
| 278 | |
| 279 | samples.push_back(m); |
| 280 | } |
| 281 | } |
| 282 | |
| 283 | // ---------------------------------------------------------------------------------------- |
| 284 | |