Trasformazioni vettoriali (casuali)
Le trasformazioni potrebbero essere fatte direttamente prima di usare le coordinate dei punti ma conviene convertire i punti in vettori per poter sfruttare i metodi della classe p5.Vector e avere a disposizione anche le coordinate non trasformate.
// height=300 lines=auto
let font;
let punti;
function preload() {
font = loadFont("assets/UbuntuCondensed.ttf");
}
function setup() {
createCanvas(670,300);
punti = font.textToPoints("testo", 30, 260, 320);
}
function draw() {
let vettori = [];
for (let i = 0; i < punti.length; ++i) {
let vettore = createVector(punti[i].x, punti[i].y);
vettore.x += random(-3, 3); // modifica vettore
vettori[i] = vettore;
}
background(255);
for (let vett of vettori) { // iterazione vettori
circle(vett.x, vett.y, 2);
}
}
let vettori = [];
for (let i = 0; i < punti.length; ++i) {
let vettore = createVector(punti[i].x, punti[i].y);
// istruzioni con trasformazione vettore
vettori[i] = vettore;
}
I punti vengono letti e usati per creare istanze di p5.Vector (vettore) da aggiungere all'array di tutti i punti trasformati (vettori)
vettore.x += random(-3, 3);
Una trasformazione minima potrebbe essere quella di aggiungere un valore casuale fra -3 e 3 pixel alla coordinata x del vettore, prima di aggiungerlo all'array.
Modificare casualmente anche la coordinata y del vettore da trasformare, provando poi a cambiare i parametri dei random().
Strutturazione dei file:
- CARTELLA-SKETCH
- assets
- libs
- p5.min.js
- index.html
- sketch.js