From ca870dab91daee38b8d55ac6d2f2b4fd6959c6ac Mon Sep 17 00:00:00 2001 From: equa Date: Sun, 18 Apr 2021 20:22:20 -0500 Subject: entities et al --- lib/vec.fnl | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 lib/vec.fnl (limited to 'lib/vec.fnl') diff --git a/lib/vec.fnl b/lib/vec.fnl new file mode 100644 index 0000000..cce9627 --- /dev/null +++ b/lib/vec.fnl @@ -0,0 +1,27 @@ +(fn ilerp* [a b c d x] + (+ c (* (/ (- x a) (- b a)) (- d c)))) + +(fn add [a b] + {:x (+ a.x b.x) + :y (+ a.y b.y)}) + +(fn sub [a b] + {:x (- a.x b.x) + :y (- a.y b.y)}) + +(fn mul [v n] + {:x (* v.x n) + :y (* v.y n)}) + +(fn mag [v] + (math.sqrt (+ (* v.x v.x) (* v.y v.y)))) + +(fn wrap [a b] + {:x (% a.x b.x) + :y (% a.y b.y)}) + +(fn lerp [a b c d x] + {:x (ilerp* a.x b.x c.x d.x x.x) + :y (ilerp* a.y b.y c.y d.y x.y)}) + +{: lerp : add : sub : mul : mag : wrap} -- cgit 1.3.0-6-gf8a5