#include "magnetism.h" #include "consts.h" #include "vec_utils.h" #include #define EPSILON 8.85418782E-12 void magnetism(universe_t* uni){ mass_body_t body_1; mass_body_t body_2; Vector2 diff, force; for (unsigned int i = 0; i < uni->num_bodies-1; i++) { body_1 = uni->bodies[i]; for (unsigned int y = i + 1; y < uni->num_bodies; y++) { body_2 = uni->bodies[y]; diff=vec2_diff(body_2.position,body_1.position); force = vec2_scale(diff,body_1.charge*body_2.charge/(4*PI*EPSILON*vec2_len(diff))); body_1.speed=vec2_sum(body_1.speed,vec2_scale(force,1/body_1.mass)); body_2.speed=vec2_diff(body_2.speed,vec2_scale(force,1/body_2.mass)); uni->bodies[y] = body_2; } uni->bodies[i] = body_1; } }