0 Members and 1 Guest are viewing this topic.
C'est un très gros boulot quand même.
for body in bodies: var totalForces = new Vector() for otherBody in bodies: if body == otherBody: continue var direction = otherBody.position - body.position var force = (G * body.mass * otherBody.mass) / direction.length**2 totalForces += direction.normalize() * force var acceleration = totalForces * m body.setSpeed(body.speed + acceleration * dt)for body in bodies: body.setPosition(body.position + body.speed * dt)
body.setSpeed(body.speed + acceleration * dt)
Bibi : Ton algo a malheureusement un petit problème qui vient de l'approximation linéaire du déplacement entre tes calculsCode: [Select]body.setSpeed(body.speed + acceleration * dt) --> là tu sous-entends que c'est un mouvement uniformément accéléré, donc linéaire.Comme tes corps tournent toujours dans le même sens, l'erreur entre la position réelle et la position calculée va toujours augmenter ... avec un soleil et une planète, la planète prendra toujours la poudre d'escampette.