ref: e85e9a78a8b587d6b7a8bd84f70dbde33e7de904
dir: /sys/src/games/timmy/util.c/
#include <u.h>
#include <libc.h>
#include <thread.h>
#include <draw.h>
#include <mouse.h>
#include <keyboard.h>
#include "dat.h"
#include "fns.h"
Vec
vecadd(Vec a, Vec b)
{
return (Vec){a.x + b.x, a.y + b.y};
}
Vec
vecsub(Vec a, Vec b)
{
return (Vec){a.x - b.x, a.y - b.y};
}
Vec
vecmul(Vec v, double s)
{
return (Vec){v.x * s, v.y * s};
}
Vec
vecnorm(Vec v)
{
double r;
r = hypot(v.x, v.y);
if(r == 0) return (Vec){0, 0};
v.x /= r;
v.y /= r;
return v;
}
double
vecdist(Vec a, Vec b)
{
return hypot(a.x - b.x, a.y - b.y);
}
double
vecdot(Vec a, Vec b)
{
return a.x * b.x + a.y * b.y;
}
Vec
vecnormal(Vec n)
{
Vec m;
m.x = -n.y;
m.y = n.x;
return vecnorm(m);
}