summaryrefslogtreecommitdiffstats
path: root/rand.c
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-10-28 11:09:12 -0400
committerSam Anthony <sam@samanthony.xyz>2024-10-28 11:09:12 -0400
commit93a3f005480effe48513e7bc81161db1adc43f32 (patch)
tree64eeca36d8fc5c26663212db9210bc86d63dcd52 /rand.c
parent613c6f7390cfc85a440b8aef3ec6e9d88529e526 (diff)
downloadballs-93a3f005480effe48513e7bc81161db1adc43f32.zip
move
Diffstat (limited to 'rand.c')
-rw-r--r--rand.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/rand.c b/rand.c
new file mode 100644
index 0000000..da450f6
--- /dev/null
+++ b/rand.c
@@ -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;
+}