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