- float x = (2.0f * rand() / RAND_MAX) - 1.0;
- float y = (2.0f * rand() / RAND_MAX) - 1.0;
- float z = (float)rand() / RAND_MAX;
+ float x, y, z;
+
+ do {
+ x = (2.0f * rand() / RAND_MAX) - 1.0;
+ y = (2.0f * rand() / RAND_MAX) - 1.0;
+ } while(x * x + y * y < excl_rad * excl_rad);
+ z = (float)rand() / RAND_MAX;