imu01c
vector.cpp
- Committer:
- HMFK03LST1
- Date:
- 2015-10-31
- Revision:
- 0:456611adedf8
- Child:
- 3:a55edecc96e2
File content as of revision 0:456611adedf8:
#include <vector.h> #include <math.h> void vector_cross(const vector *a,const vector *b, vector *out) { out->x = a->y*b->z - a->z*b->y; out->y = a->z*b->x - a->x*b->z; out->z = a->x*b->y - a->y*b->x; } float vector_dot(const vector *a,const vector *b) { return a->x*b->x+a->y*b->y+a->z*b->z; } void vector_normalize(vector *a) { float mag = sqrt(vector_dot(a,a)); a->x /= mag; a->y /= mag; a->z /= mag; } void vector_norm_xz(vector*a) { float mag = sqrt(a->x*a->x + a->z*a->z); a->x /= mag; a->y = 0; a->z /= mag; } void vector_norm_xy(vector*a) { float mag = sqrt(a->x*a->x + a->y*a->y); a->x /= mag; a->y /= mag; a->z = 0; } void vector_norm_yz(vector*a) { float mag = sqrt(a->z*a->z + a->y*a->y); a->x = 0; a->y /= mag; a->z /= mag; }