Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

228
Vistas
comportamiento de rebote incorrecto en la biblioteca de juegos p5js

Estoy usando la biblioteca de play : https://molleindustria.github.io/p5.play/

Estoy haciendo una demostración simple de pelotas que rebotan, con una pelota grande cuya masa en play está dada por $\pi r^2$. La física básica me parece correcta. Pero después de unos segundos, la bola grande comienza a saltar grandes distancias cuando es golpeada por una bola pequeña.

Aquí está mi código completo (EDITAR, también pegado a continuación): https://editor.p5js.org/jmmcd/sketches/BMPtPY098

Parece un error en el código de colisión/rebote. Pero mi código es conceptualmente el mismo que https://molleindustria.github.io/p5.play/examples/index.html?fileName=collisions4.js , que no tiene este problema.

 // Inspired by Drescher's discussion of the // arrow of time in "Good and Real" // there is a bug I can't fix: soon after the animation starts, // the large circle starts jumping as if being displaced or as // if a collision goes wrong let circles; function setup() { createCanvas(400, 400); r = 5; s = 1; // radius and speed of small circles R = 50; S = 2; // radius and speed of large circles circles = new Group; for (let i = 0; i < 1; i++) { // big circle(s) circles.add(makeCircle(R, S)); } for (let i = 0; i < 100; i++) { // lots of little circles circles.add(makeCircle(r, s * random(0, 1))); } } function makeCircle(r, s) { let col = [random(255), random(255), random(255)]; c = createSprite(random(width), random(height), r, r); c.draw = function() { fill(col); ellipse(0, 0, r, r) } c.setCollider("circle"); c.setSpeed(s, random(0, 360)); c.mass = PI * r * r; c.scale = 1; return c; } function draw() { background(220); circles.bounce(circles); bounceGroupWalls(circles); for (let c of circles) { c.debug = mouseIsPressed; } drawSprites(); status(); } function status() { textSize(12); let s = 0; for (let c of circles) { s += c.getSpeed() * c.mass; } s = s.toFixed(0); text("Momentum " + s, 30, 30); } function bounceGroupWalls(g) { //all sprites in group g bounce at the screen edges for (let s of g) { if(s.position.x <= 0 || s.position.x >= width) { s.velocity.x *= -1; } if(s.position.y <= 0 || s.position.y >= height) { s.velocity.y *= -1; } } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Parece que hay algunos errores en la física de p5.play, en particular los túneles. Algunas grandes mejoras ya se implementaron, y más están por venir. Consulte https://github.com/molleindustria/p5.play/issues/214 .

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda