Simulation de base
This commit is contained in:
parent
cceb38c7ee
commit
65b6524520
|
@ -68,6 +68,7 @@ namespace gti320 {
|
|||
*/
|
||||
Vector &operator=(const Vector &other) {
|
||||
this->m_storage = other.m_storage;
|
||||
this->m_rows = other.rows();
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
|
|
@ -553,7 +553,7 @@ void ParticleSimApplication::step(float dt)
|
|||
// implicite. Les nouvelles position sont calculées à partir des position
|
||||
// actuelles m_x et des nouvelles vitesses v_plus. Les nouvelles positions
|
||||
// sont stockées directement dans le vecteur m_x.
|
||||
|
||||
m_x = m_x + dt * v_plus;
|
||||
|
||||
// Affecte les valeurs calculées dans le vecteurs d'états aux particules du
|
||||
// système
|
||||
|
|
|
@ -28,8 +28,11 @@ void ParticleSystem::computeForces() {
|
|||
Particle &p0 = m_particles[s.index0];
|
||||
Particle &p1 = m_particles[s.index1];
|
||||
|
||||
p0.f = p0.f + (s.k * p0.x);
|
||||
p1.f = p1.f + (-s.k * p1.x);
|
||||
Vector<float, 2> distance = p1.x - p0.x;
|
||||
Vector<float, 2> force = (s.k * (1 - s.l0 / distance.norm())) * distance;
|
||||
|
||||
p0.f = p0.f + force;
|
||||
p1.f = p1.f - force;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue