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

688
Vistas
Pregunta de principiantes sobre la función print() de p5js

He visto algunas publicaciones cerradas en GitHub, y la pregunta similar sin resolver ocasional en retornos aleatorios, pero puedo obtener una buena explicación de por qué en un simple comando print() de un objeto definido, el objeto se está imprimiendo en la consola aparentemente en un bucle:

ingrese la descripción de la imagen aquí

Acabo de empezar a usar p5js y no sé javascript. Por lo tanto, puede ser donde se colocan los comandos ( function setup() o function draw() ), que todavía no estoy seguro de por qué están predeterminados en la página de inicio del editor, o debo especificar que quiero que el resultado se imprima solo una vez. (?).

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esto sucede porque draw() se ejecuta en un bucle. Detrás de escena, la biblioteca p5js usa requestAnimationFrame para llamar a draw() .

Puede mover la declaración de print para que esté dentro de la función setup() , que solo se ejecuta una vez al comienzo del script.

 function setup() { createCanvas(400, 400); c = createVector(0,0); print(c.toString()); } function draw() { //print(c.toString()); background(220); }

O si lo prefiere, puede configurar un bloque de impresión condicional de la siguiente manera:

 var printed = false; function setup() { createCanvas(400, 400); c = createVector(0,0); //print(c.toString()); } function draw() { if (!printed) { print(c.toString()); printed = true; } background(220); }

Nota : también considere usar el método toString en el objeto p5.Vector para una salida más limpia.

Si necesita obtener resultados de una función que se llama desde dentro de la función draw() , puede aplicar los mismos principios de la siguiente manera:

 var printed = false; function setup(){ createCanvas(400, 400); c = createVector(0,0); print(c); } function draw() { background(220); } function beingCalledWithinDraw(){ if (!printed) { print(c); printed = true; } }

Ejemplo ejecutable:

 var printed = false; function setup() { createCanvas(400, 400); c = createVector(0, 0); //print(c.toString()); } function draw() { background(220); beingCalledWithinDraw(); } function beingCalledWithinDraw() { if (!printed) { print(c.toString()); printed = true; } }
 <script src="https://cdn.jsdelivr.net/npm/p5@1.4.0/lib/p5.min.js"></script>

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