diff options
author | mattkae <mattkae@protonmail.com> | 2022-02-26 20:08:53 -0500 |
---|---|---|
committer | mattkae <mattkae@protonmail.com> | 2022-02-26 20:08:53 -0500 |
commit | 38d89c1182a61ca4e024e0834ae9187db76c67f8 (patch) | |
tree | eeb0cdabac28a0eed05d090c85028933a4645c7a /2d/softbody/softbody_1/snippet1.cpp | |
parent | 8d4c5116719825dce6222c494cd384fe1df775de (diff) |
Fixing spring simulations and some write ups
Diffstat (limited to '2d/softbody/softbody_1/snippet1.cpp')
-rw-r--r-- | 2d/softbody/softbody_1/snippet1.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/2d/softbody/softbody_1/snippet1.cpp b/2d/softbody/softbody_1/snippet1.cpp new file mode 100644 index 0000000..19c2782 --- /dev/null +++ b/2d/softbody/softbody_1/snippet1.cpp @@ -0,0 +1,15 @@ + +struct Spring { + float mass = 1.f; // Mass of the weight on the end of the spring + float k = 4; // Spring Constant, in N / m + float force = 0.f; + float velocity = 0.f; + float position = 0.f; +}; + +void updateSpring(Spring* spring, float dtSeconds) { + spring->force = spring->k * spring->position; + float acceleration = spring->force / spring->mass; // F = ma + spring->velocity = spring->velocity + acceleration * dtSeconds; + spring->position = spring->position + spring->velocity * dtSeconds; +} |