Lettura contorni (e buchi) dei caratteri

    let font
let contours

async function setup() {
  createCanvas(670, 300)
  font = await loadFont("UbuntuCondensed.ttf")
  fill(0)
  // leggi i punti
  textSize(240)
  let parametri = { sampleFactor: 0.5, simplifyThreshold: 0 }
  contours = font.textToContours("bagoga", 5, 220, parametri)
}

function draw() {
  background(255)
  line(0, 160, 670, 160)
  // visualizza le lettere
  beginShape()
  for (let i = 0; i < contours.length; i++) {
    beginContour()
    for (const pt of contours[i]) {
      let oscillazione = sin((frameCount + i*5)/20) * 30
      vertex(pt.x, pt.y + oscillazione)
    }
    endContour(CLOSE)
  }
  endShape()
}
  

  

Definisce una funzione asincrona, che continua a essere eseguita senza bloccare il codice che la chiama.


  

Chiama la funzione di caricmaento del font ma aspetta (await) che il caricamento finisca prima di passare all’istruzione successiva.


  

Legge i punti delle forme che permettono di ricostruire le singole lettere. L’array contours conterrĂ  un array per ogni forma o “buco” delle lettere.


  

Disegna le singole forme e i “buchi” delle lettere facendole oscillare verticalmente.