Update to non pointers and not working gravit

This commit is contained in:
h3cx committed 2026-09-30 22:23:04 +02:00
1 parent 397d818c62
commit aa4f0dfe52
12 files changed
+94 -100

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
#include "gravity.h"
#include "consts.h"
#include "vec_utils.h"
#include <raylib.h>
void gravity(universe_t *uni) {
mass_body_t body_1;
mass_body_t body_2;
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];
float force =
simx * NEWTON_G * body_1.mass * body_2.mass /
(vec2_len(vec2_diff(body_2.position, body_1.position)) * TIMESTEP);
Vector2 acceleration =
vec2_normalize(vec2_diff(body_2.position, body_1.position));
Vector2 acceleration_1 = vec2_scale(acceleration, force / body_1.mass);
Vector2 acceleration_2 = vec2_scale(acceleration, -force / body_2.mass);
body_1.speed = vec2_sum(body_1.speed, acceleration_1);
body_2.speed = vec2_sum(body_1.speed, acceleration_2);
uni->bodies[y] = body_2;
}
uni->bodies[i] = body_1;
}
}