diff --git a/Robotito/src/math_vector_operations/math_vector_operations.c b/Robotito/src/math_vector_operations/math_vector_operations.c index 96600a82024242057cfbf981056726bc09c4b98a..afe4d940f677eb6e0dcf94514119047d8d553da3 100644 --- a/Robotito/src/math_vector_operations/math_vector_operations.c +++ b/Robotito/src/math_vector_operations/math_vector_operations.c @@ -54,18 +54,24 @@ float dotProduct (sF3dVector_t* v, sF3dVector_t v2){ } void crossProduct (sF3dVector_t* v, sF3dVector_t v2){ - - v->x = v->y*v2.z - v->z*v2.y; - v->y = v->z*v2.x - v->x*v2.z; - v->z = v->x*v2.y - v->y*v2.x; + float vx, vy, vz; + vx = v->x; + vy = v->y; + vz = v->z; + v->x = vy*v2.z - vz*v2.y; + v->y = vz*v2.x - vx*v2.z; + v->z = vx*v2.y - vy*v2.x; } void vector_mul (sF3dMatrix_t m, sF3dVector_t* v){ - - v->x = m.x1*v->x + m.y1*v->y + m.z1*v->z; - v->y = m.x2*v->x + m.y2*v->y + m.z2*v->z; - v->z = m.x3*v->x + m.y3*v->y + m.z3*v->z; + float vx, vy, vz; + vx = v->x; + vy = v->y; + vz = v->z; + v->x = m.x1*vx + m.y1*vy + m.z1*vz; + v->y = m.x2*vx + m.y2*vy + m.z2*vz; + v->z = m.x3*vx + m.y3*vy + m.z3*vz; }