diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-09-19 17:54:19 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-09-19 17:54:19 -0400 |
| commit | 9da5009cdcabdc162d84e43853439cee78467f23 (patch) | |
| tree | 7178ed979df4486499c609b90e4f3d9af61104f6 /vec.c | |
| parent | b35fe74ccc8711e3a81aa7078fe74ebc14217513 (diff) | |
| download | balls-9da5009cdcabdc162d84e43853439cee78467f23.zip | |
better collisions
Diffstat (limited to 'vec.c')
| -rw-r--r-- | vec.c | 51 |
1 files changed, 51 insertions, 0 deletions
@@ -0,0 +1,51 @@ +#include "balls.h" + +Vec +vsub(Vec v1, Vec v2) { + return V(v1.x-v2.x, v1.y-v2.y); +} + +Vec +vmuls(Vec v, int a) { + return V(v.x*a, v.y*a); +} + +Vec +vdivs(Vec v, int a) { + if (a == 0) + return V(0, 0); + return V(v.x/a, v.y/a); +} + +int +vdot(Vec v1, Vec v2) { + return v1.x*v2.x + v1.y*v2.y; +} + +int +vlen(Vec v) { + return sqrt(v.x*v.x + v.y*v.y); +} + +Vec +unitnorm(Vec v) { + return vdivs(v, vlen(v)); +} + +Point +ptaddv(Point p, Vec v) { + p.x += v.x; + p.y += v.y; + return p; +} + +Vec +V(int x, int y) { + Vec v = {x, y}; + return v; +} + +Vec +Vpt(Point p, Point q) { + return V(p.x-q.x, p.y-q.y); +} |