diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-10-28 11:09:12 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-10-28 11:09:12 -0400 |
| commit | 93a3f005480effe48513e7bc81161db1adc43f32 (patch) | |
| tree | 64eeca36d8fc5c26663212db9210bc86d63dcd52 /rand.c | |
| parent | 613c6f7390cfc85a440b8aef3ec6e9d88529e526 (diff) | |
| download | balls-93a3f005480effe48513e7bc81161db1adc43f32.zip | |
move
Diffstat (limited to 'rand.c')
| -rw-r--r-- | rand.c | 36 |
1 files changed, 36 insertions, 0 deletions
@@ -0,0 +1,36 @@ +#include <stdlib.h> +#include <time.h> + +#include "balls.h" + +static float randFloat(float lo, float hi); + +float2 +randPtInRect(Rectangle r) { + float2 pt = { + randFloat(r.min[0], r.max[0]), + randFloat(r.min[1], r.max[1]) + }; + return pt; +} + +float2 +randVec(float xmin, float xmax, float ymin, float ymax) { + float2 v = {randFloat(xmin, xmax), randFloat(ymin, ymax)}; + return v; +} + +static float +randFloat(float lo, float hi) { + float r, diff; + static int isInitialized = 0; + + if (!isInitialized) { /* First call. */ + srand(time(0)); + isInitialized = 1; + } + + r = (float) rand() / RAND_MAX; + diff = hi - lo; + return lo + r*diff; +} |