Diferencia entre revisiones de «Widget:P5»

De Casiopea
Sin resumen de edición
Sin resumen de edición
Línea 113: Línea 113:
     this.rot += this.speed;
     this.rot += this.speed;
   }
   }
}
}}
=== Ejemplo ''responsive'' ===
{{#widget:P5
|id = p5b
|code=
let stars2;
let sketch2;
function setup() {
  sketch2 = createCanvas(document.getElementById("p5b").offsetWidth, 600);
  sketch2.parent('p5b');
 
  let m = 50; // margen
  let nx = 8;  // número de elementos en x
  let ny = 8; // número de elementos en y
  stars2 = [];  // las muchas estrellas
 
  // calculo los espacios
  let sx = (width - 2 * m) / (nx - 1);
  let sy = (height - 2 * m) / (ny - 1);
  // construyo todas las estrellas de forma azarosa
  for (let y = 0; y < ny; y++) {
    for (let x = 0; x < nx; x++) {
      let posx = m + x * sx;
      let posy = m + y * sy;
      let n = 2 * round(random(3, 8));
      let r1 = random(10, 20);
      let r2 = random(0, 10);
     
      // construyo una estrella "s"
      let s = new Star(posx, posy, n, r1, r2)
     
      // agrego la estrella "s" al arreglo "stars"
      stars2.push(s);
    }
  }
  noStroke();
  fill(255);
}
function draw() {
  background(250, 0, 50);
  for (let i = 0; i < stars2.length; i++) {
    stars2[i].paint();
  }
}
}
}
}}
}}

Revisión del 19:58 23 mar 2020

En esta página es para usuarios avanzados que conocen conceptos de programación en javascript. El mal uso de este Widget puede provocar comportamientos inesperados.

Este Widget permite ingresar código de P5js directamente en la página, sin la necesidad de insertar un iframe como lo hace este otro widget de P5js.

Se utiliza del siguiente modo:

{{#widget:P5
|id = opcional
|code = pegar acá el código
}}

El sketch de p5 se incorpora dentro de un div con el id indicado. Si no se define el campo id su valor predeterminado es 'p5'. El sentido de utilizar este widget es para poder embeber objetos canvas que puedan adaptar su tamaño al elemento contenedor (responsive). Para lograr esto es necesario definir algo del tipo:

let sketch;
function setup() {
  sketch = createCanvas(document.getElementById("p5").offsetWidth, 350);
  sketch.parent('p5'); 
}

.

Ejemplo fijo