From 7f24f37772871ad4a420f59f93b97ab1ad9b0e24 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Tue, 13 Apr 2010 00:21:52 +0200 Subject: digital/avr/modules/math/geometry: add normal and dot product --- digital/avr/modules/math/geometry/vect.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'digital/avr/modules/math/geometry/vect.c') diff --git a/digital/avr/modules/math/geometry/vect.c b/digital/avr/modules/math/geometry/vect.c index 57b5a4d4..88cc125f 100644 --- a/digital/avr/modules/math/geometry/vect.c +++ b/digital/avr/modules/math/geometry/vect.c @@ -83,6 +83,21 @@ vect_from_polar_uf016 (vect_t *v, int16_t l, uint16_t a_uf016) v->y = fixed_mul_f824 (l, fixed_sin_f824 (a_uf824)); } +void +vect_normal (vect_t *v) +{ + assert (v); + int16_t tx = v->x, ty = v->y; + v->x = -ty; + v->y = tx; +} + +int32_t +vect_dot_product (const vect_t *a, const vect_t *b) +{ + return (int32_t) a->x * b->x + (int32_t) b->y * a->y; +} + void vect_array_scale_f824 (vect_t *va, uint8_t vn, int32_t s_f824) { -- cgit v1.2.3