X-Git-Url: http://git.droids-corp.org/?p=aversive.git;a=blobdiff_plain;f=modules%2Fbase%2Fmath%2Fgeometry%2Fvect_base.c;h=600844086015dad6ac9b500492da35fe60e7a50a;hp=9ea271dc81461677cb332dc0c0a0e75fb91aeed4;hb=9b20b69a87c9d442cf4610351dc40b28b7f36e9c;hpb=09fd7b53a60d7201b6d019d88d3fee3d43a14c3f diff --git a/modules/base/math/geometry/vect_base.c b/modules/base/math/geometry/vect_base.c index 9ea271d..6008440 100755 --- a/modules/base/math/geometry/vect_base.c +++ b/modules/base/math/geometry/vect_base.c @@ -22,23 +22,23 @@ #include #include #include - + /* Return scalar product */ -float +float vect_pscal(vect_t *v, vect_t *w) { return v->x * w->x + v->y * w->y; } /* Return Z of vectorial product */ -float +float vect_pvect(vect_t *v, vect_t *w) { return v->x*w->y - v->y*w->x; } /* Return scalar product */ -int8_t +int8_t vect_pscal_sign(vect_t *v, vect_t *w) { float z; @@ -49,7 +49,7 @@ vect_pscal_sign(vect_t *v, vect_t *w) } /* Return Z of vectorial product */ -int8_t +int8_t vect_pvect_sign(vect_t *v, vect_t *w) { float z; @@ -59,14 +59,14 @@ vect_pvect_sign(vect_t *v, vect_t *w) return z>0?1:-1; } -/* float norm(float x1, float y1, float x2, float y2) */ -/* { */ -/* float x = x2 - x1; */ -/* float y = y2 - y1; */ -/* return sqrt(x*x + y*y); */ -/* } */ +float xy_norm(float x1, float y1, float x2, float y2) +{ + float x = x2 - x1; + float y = y2 - y1; + return sqrt(x*x + y*y); +} -float pt_norm(point_t *p1, point_t *p2) +float pt_norm(const point_t *p1, const point_t *p2) { float x = p2->x - p1->x; float y = p2->y - p1->y; @@ -74,8 +74,7 @@ float pt_norm(point_t *p1, point_t *p2) } /* norm of a vector */ -float -vect_norm(vect_t *v) +float vect_norm(const vect_t *v) { return sqrt(v->x*v->x+v->y*v->y); } @@ -83,30 +82,30 @@ vect_norm(vect_t *v) void vect_rot_trigo(vect_t *v) { float s; - + s = v->x; v->x= -v->y; v->y = s; -} +} void vect_rot_retro(vect_t *v) { float s; - + s = v->x; v->x= v->y; v->y = -s; -} +} float vect_get_angle(vect_t *v, vect_t *w) { float ps; float n; - + ps = vect_pscal(v, w); n = vect_norm(v) * vect_norm(w); - + return acos((float)ps/n); }