From e1cb9df9355a6ae67aac76dbcde209b8f70796ee Mon Sep 17 00:00:00 2001 From: rodri Date: Thu, 20 Feb 2020 21:56:37 +0000 Subject: git release. --- vector.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 vector.c (limited to 'vector.c') diff --git a/vector.c b/vector.c new file mode 100644 index 0000000..21a3711 --- /dev/null +++ b/vector.c @@ -0,0 +1,54 @@ +#include +#include +#include +#include "dat.h" +#include "fns.h" + +Vector +Vec(double x, double y) +{ + return (Vector){x, y}; +} + +Vector +Vpt(Point p) +{ + return (Vector){p.x, p.y}; +} + +Vector +addvec(Vector v, Vector u) +{ + return (Vector){v.x+u.x, v.y+u.y}; +} + +Vector +subvec(Vector v, Vector u) +{ + return (Vector){v.x-u.x, v.y-u.y}; +} + +Vector +mulvec(Vector v, double s) +{ + return (Vector){v.x*s, v.y*s}; +} + +double +dotvec(Vector v, Vector u) +{ + return v.x*u.x + v.y*u.y; +} + +Vector +normvec(Vector v) +{ + double len; + + len = hypot(v.x, v.y); + if(len == 0) + return (Vector){0, 0}; + v.x /= len; + v.y /= len; + return v; +} -- cgit v1.2.3