updateVelocity(allBodies, timeStep){ for (let otherBody of allBodies) { if(otherBody != this){ let sqrDst = (p5.Vector.sub(otherBody.pos, this.pos).mag()); let forceDir = (p5.Vector.sub(otherBody.pos, this.pos).normalize()); let force = p5.Vector.mult(forceDir, gravity * this.mass * otherBody.mass / sqrDst); let acceleration = p5.Vector.div(force, this.mass); this.currentVelocity.add(acceleration * timeStep); } } } updatePosition(timeStep){ this.pos.add(this.currentVelocity * timeStep); ellipse(this.pos.x, this.pos.y, this.radius); } }Estoy tratando de replicar el video del sistema solar de Sebastian Lague pero con p5.js
Recibo este error p5.Vector.prototype.mult: los argumentos x, y o z no están definidos o no son un número finito . Cuando elimino la línea donde multiplico, desaparece, pero eso hace que todo no funcione. Lo busqué y podría ser que el valor z sea automáticamente 0, pero traté de configurarlo manualmente en 1 agregando y todavía no funcionó.
Hice una depuración y descubrí que la fuerza en realidad cambia, pero como los planetas no se mueven, permanece igual después de un tiempo y no sucede nada.
¿Cómo me deshago de este error?
forceDir registro de la consola. Sospecho que uno de los componentes del vector es infinito (o indefinido).